需要帮助java编程!

时间:2011-07-12 22:41:51

标签: java ubuntu-10.04

我是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)

5 个答案:

答案 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”选项(在我的工具栏上看起来像砖块),而不是“编译”(蓝色多面体转换为红色球体)。