尝试运行我的应用程序时为什么会出现NoClassDefFoundError?

时间:2011-08-15 19:09:33

标签: java noclassdeffounderror

好吧,所以我正在创建一个简单的Java类,只需打印出“Hello!”。这是代码:

public class Hello
{
    public static void main(String[] args)
    {
        System.out.println("Hello!");
    }
}

我通过命令提示符编译了类,然后,当我想运行它时,它给了我一个NoClassDefFoundError,表明类路径存在问题。这真是太愚蠢了,因为它是一个一流的程序。我尝试了很多东西但似乎没有解决问题。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

您尚未显示如何运行代码。我的猜测是你跑了:

java Hello.class

尝试运行名为Hello.class。该类名为Hello,因此您需要:

java Hello

如果您尚未设置CLASSPATH环境变量,那应该没问题。否则,将其设置为包含.的路径,或在命令行中指定它:

java -cp . Hello

当然,假设您首先使用如下命令编译代码:

javac Hello.java

答案 1 :(得分:0)

您已设置环境变量CLASSPATH,但它不包含“。” (点)表示当前目录(默认为。)运行如下:

java -cp . Hello

那是“java space dash cp space dot space Hello”。

一旦你越过“Hello,World”,你会发现设置类路径一直是必要的 - 无论是手工这样(很少,在现实世界中)还是在启动脚本中,构建工具或IDE。

使用CLASSPATH环境变量是Java早期的一个不好的做法。通常你会发现Apple的QuickTime安装程序正在设置它。你永远不应该使用或依赖这个变量。