好吧,所以我正在创建一个简单的Java类,只需打印出“Hello!”。这是代码:
public class Hello
{
public static void main(String[] args)
{
System.out.println("Hello!");
}
}
我通过命令提示符编译了类,然后,当我想运行它时,它给了我一个NoClassDefFoundError,表明类路径存在问题。这真是太愚蠢了,因为它是一个一流的程序。我尝试了很多东西但似乎没有解决问题。
我该如何解决这个问题?
答案 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安装程序正在设置它。你永远不应该使用或依赖这个变量。