Could not find main class HelloWorld
我在下面的文件夹EDCOX1,0中安装了Java1.7.0。我的操作系统是带Service Pack 3的Windows XP(2002版)。
我设置的环境变量是:
类路径:
C:\Program Files\Java\jdk1.7.0\jre\lib 。
t.jar;路径:
C:\Program Files\Java\jdk1.7.0\bin; 。爪哇之家:
C:\Program Files\Java; 。
我在这里展示了我系统中的类名。
接下来我写了一个程序helloworld.java:
1 2 3 4 5 6 7 8 9 |
当我使用
但在我发布
1 2 3 4 5 6 7 8 9 10 11 12 13 | Error: Could not find main class HelloWorld Exception in thread"main" java.lang.NoClassDefFoundError: HelloWorld at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:198) Caused by: java.lang.ClassNotFoundException: HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:299) at java.net.URLClassLoader$1.run(URLClassLoader.java:288) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:287) at java.lang.ClassLoader.loadClass(ClassLoader.java:422) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:325) at java.lang.ClassLoader.loadClass(ClassLoader.java:355) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:195) |
在四处搜索之后,我发现环境变量可能有问题。我试着玩,但没有运气。
我甚至重新启动了机器,然后再次尝试运行,但命运相同。
告诉它在哪里查找类:它在"."中,这是当前目录:
1 | java -classpath . HelloWorld |
在这种情况下,不需要设置
您没有设置包含已编译类的类路径!如果你不告诉
1 | java -cp [compiler outpur dir] HelloWorld |
顺便说一下,您不需要按照您所做的方式设置类路径。
只需从环境变量中删除"classpath"。然后尝试运行:
1 | java HelloWorld |
这应该很管用。
Java没有找到编译类文件(HeloWorlD.class)的位置。它使用
您不需要在EDCOX1 2中使用RT.jar,这些只适用于旧版本的Java。您可以不定义当前工作目录,也可以只在
类路径:
或者,您可以使用
1 | java -cp . HelloWorld |
而且,正如安德烈亚斯所写的,EDCOX1的1Ω不是Java所需要的,只是对于一些第三方工具,如Ant(但是应该指向正确的位置)。
您可以将"."添加到类路径以指定当前目录,也可以按照unbeli建议的方式在运行时手动添加该目录。
将.;放在开头的class path值处..它将开始工作…发生这种情况是因为它在路径变量中提到的classpath中搜索类文件。
我也面临同样的问题……
实际上,这个问题是由于您的程序
如果仔细观察,您的
我也有同样的问题。也许,问题是你用不同的Java版本编译和执行了这个类。
确保编译器的版本与命令"Java"相同:
1 2 3 | javac -version java -version |
在Linux,使用
SUDO更新替代方案——配置Java
更改Java版本。
如果从命令行启动Java和Javac,则不需要EDCOX1 1Ω。但是
我从不在构建脚本之外使用
(我非常确定,源文件需要一个公共类…还是最多只有一个公共课?)
看起来您已经正确地完成了所有设置,但可能有一个区域会导致问题
检查您的"classpath"变量的值,并确保在保存的末尾;。
注:;用于末端分隔符. 用于在结尾处包含现有路径