Java "Could not find or load main class"(PATH 和 CLASSPATH 已经设置)

Java "Could not find or load main class" (PATH and CLASSPATH Already Set)

我在命令行上 运行ning java 遇到问题。我检查了很多其他问题,none 解决了我的问题。

我正在使用 Windoze 10 x64.

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

jdk1.8.0_121jre1.8.0_121.

我已经将 JAVA_HOMEPATHCLASSPATH 设置如下:

这是系统变量的当前配置。我尝试了很多配置变体,但 none 似乎有所帮助。例如添加到 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。

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

如果你能像 LI5 一样引导我,我将不胜感激,我真的在寻找解决方案,观看了有关如何设置系统变量的视频,但没有任何结果。

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


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

您可以阅读 Here 以及下面关于 azurefrog 的评论和 mirmdasif 的回复,您需要将当前工作目录添加到 CLASSPATH

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

所以 CLASSPATH 应该看起来像这样:.;%JAVA_HOME%/lib(注意 . 后跟分号 ;

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

示例:Java Windows7 System32 folder java.exe

问题出在您的 CLASS_PATH 变量上。

The preferred way to specify the classpath is by using the -cp command line switch. This allows the CLASSPATH to be set individually for each application without affecting other applications

ClassPath 变量的默认值为'.',这意味着只搜索当前目录。如果您指定类路径变量,默认值将被覆盖。

如果想将类路径设置为环境变量,您可以按照运行命令提示符中的以下命令进行操作(记住开头的点)

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

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

只需在 classpath 中更新你的环境变量,只要你得到: 错误:无法找到或加载主 class XXX

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