![](/img/trans.png)
[英]Compiling and running a java program with complex file structure from the commandline
[英]Running Java program from commandline
我正在尝试从命令行运行Java程序。 我尝试按照此处提到的步骤进行操作。 但是,当我尝试运行javac Hello.java
,抛出了这样的程序不存在的错误。 我试图给java Hello.java
并得到错误:
Exception in thread "main" java.lang.NoClassDefFoundError: Hello/java
Caused by: java.lang.ClassNotFoundException: Hello.java
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: Hello.java. Program will exit.
这里有什么问题。 我该怎么做?
编辑:我的代码文件Hello.java中有很多类。 这会引起任何问题吗?
首先,您应该使用
javac Hello.java
然后运行
java Hello
在这两种情况下,请确保您的类路径设置正确...
要运行该程序,您需要执行以下操作:
java Hello
这是java
后跟没有扩展名的类名。
首先,java每个文件最多需要一个公共类。 没有
public class this {
}
public class that {
}
你可以有
class this {
class that {
}
}
如果你需要。
编辑或在文件this.java中:
public class this {
}
class that {
}
javac将不在jre文件夹中。 您安装了jdk吗? 默认情况下,许多计算机上都不提供此功能。 它通常位于“ C:\\ Program Files \\ Java \\ jdk1.6.0_05 \\ bin \\ javac.exe”或类似路径中。
如其他答案所述,首先,您必须使用java Hello
而不是java Hello.java
运行应用程序
其次,您必须检查您的CLASSPATH
是否正确设置。 似乎您的变量未设置或未集成当前目录,即.
因此运行:
javac -classpath . Hello.java
java -classpath Hello
要么
set CLASSPATH=.
javac Hello.java
java Hello
当然,在Windows系统中将CLASSPATH
定义为用户/系统变量是一个更好的解决方案!
如果Hello.java
包含在包中,则必须创建一个适当的目录结构。 也就是说,如果Hello.java
包含在com.stackoverflow
包中,则必须创建文件夹com/stackoverflow
并将Hello.java
放入此文件夹中。 然后必须从根文件夹启动
java com.stackoverflow.Hello
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.