Java“无法找到或加载主类”(已设置PATH和CLASSPATH)

时间:2017-02-15 05:00:54

标签: java windows cmd console system-variable

我在命令行上运行java时遇到问题。我已经检查了很多其他问题,没有一个能解决我的问题。

我正在使用Windoze 10 x64

安装在C:\Program Files\Java,我有以下文件:

jdk1.8.0_121jre1.8.0_121

我已将JAVA_HOMEPATHCLASSPATH设置如下:

  • JAVA_HOME as C:\Program Files\Java\jdk1.8.0_121

  • PATH as %JAVA_HOME%/bin

  • CLASSPATH as %JAVA_HOME%/lib

这是系统变量的当前配置。我为配置尝试了很多变化但似乎没有任何帮助。例如也添加到PATH %JAVA_HOME%\jre1.8.0_121\bin。似乎没有任何帮助。

如果我运行java -versionjavac -version,则会显示已安装的当前版本。

我也可以编译,例如:javac HelloWorld.java成功。

当我尝试java HelloWorld时,我得到Could not find or load main class HelloWorld

以下是HelloWorld.java文件:

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

我花了+2小时试图解决这个问题。我确定这是一个新手的错误但老实说,我只是想设置它,所以我可以开始学习Java。

我可以使用IntelliJ IDEA Community Edition的控制台运行java,但不能直接在CMD上运行。

如果你能像LI5那样引导我,我真的很感激,我真的寻找解决方案,观看有关如何设置系统变量的视频,但它没有产生任何效果。

如果您需要更多信息,我很乐意提供,谢谢。

编辑:好的,这个问题已经解决了。感谢@azurefrog和@mirmdasif帮我搞清楚。

你可以在azurefrog的评论和mirmdasif的回复中阅读Here及其下方,你需要将当前的工作目录添加到CLASSPATH

通过向CLASSPATH添加.(点),将当前工作目录添加到CLASSPATH

所以CLASSPATH应该是这样的:.;%JAVA_HOME%/lib(注意.后跟分号;

3 个答案:

答案 0 :(得分:1)

问题在于您的CLASS_PATH变量。

  

指定类路径的首选方法是使用-cp命令行开关。这允许为每个应用程序单独设置CLASSPATH,而不会影响其他应用程序

ClassPath变量的默认值为'。' ,这意味着只搜索当前目录。如果指定classpath变量,则将覆盖默认值。

如果想将classpath设置为环境变量,可以在cmd提示符下运行以下cmd(记住开头的点)

C:> set CLASSPATH=.;C:\Program Files\Java\jdk1.8.0_121\lib\*

了解更多信息http://docs.oracle.com/javase/6/docs/technotes/tools/windows/classpath.html

答案 1 :(得分:0)

有时它会发生。您应该尝试在C:\Windows\System32中找到 java.exe ,如果有,则需要将其删除。

示例:Java Windows7 System32 folder java.exe

答案 2 :(得分:0)

只要您得到以下信息,就继续在classpath中更新您的环境变量: 错误:找不到或加载主类XXX

然后浏览到  C:\ Program Files \ Java \ jre1.8.0_181