我是java的新手,我刚刚创建了我的第一个程序:HelloWorld,在我编译之后我尝试运行它,它给了我这个错误:
线程“main”中的异常java.lang.NoClassDefFoundError:HelloWorld 引起:java.lang.ClassNotFoundException:HelloWorld at java.net.URLClassLoader $ 1.run(URLClassLoader.java:217)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:205)at java.lang.ClassLoader.loadClass(ClassLoader.java:321)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:294)at at java.lang.ClassLoader.loadClass(ClassLoader.java:266)找不到 主要类:HelloWorld。程序将退出。
我正在使用ubuntu版本10.04,我使用geany创建程序,并使用命令javac HelloWorld.java
在终端中编译它。
然后我使用命令java HelloWorld
在终端中运行它,然后出现上面的错误。
我的HelloWorld.java
文件如下所示:
public class HelloWorld {
public static void main (String[] args) {
System.out.println("Hello World");
}
}
然后我的HelloWorld.class
文件如下所示:
public static void main(string[] args)
答案 0 :(得分:2)
您需要直接从包含.class文件的目录运行java命令,或者需要定义类路径,即JVM可以找到已编译Java类的位置。尝试:
java -classpath <directory> HelloWorld
其中<directory>
是包含HelloWorld.class文件的目录的(相对)路径。
答案 1 :(得分:1)
检查系统上安装的JVM。我和OpenJDK有同样的问题。删除它并安装Oracle JDK后,问题就消失了。您还可以在Project&gt;中指定正确的JDK路径。属性&gt;构建&gt;执行命令。例如,执行命令的$ JAVA_HOME / bin / java“%e”。
答案 2 :(得分:0)
当您运行程序时,看起来您可能正在输入:
java HelloWorld.class
而不是
java HelloWorld
当我尝试它时,它的效果就像它应该的那样,除非我包含“.class”,这导致它给出你粘贴的错误。
答案 3 :(得分:0)
根据您对Jeen Broekstra解决方案的回应,我建议您查看代码中的“slanty”引文 - See here。
然后尝试编译:{{1}}
并且正在运行:javac HelloWorld.class
试。
答案 4 :(得分:0)
我在Geany遇到了同样的问题。我意识到我点击了“Build”选项(在我的工具栏上看起来像砖块),而不是“编译”(蓝色多面体转换为红色球体)。