【问题标题】:Java "Could not find or load main class" (PATH and CLASSPATH Already Set) [duplicate]Java“找不到或加载主类”(PATH和CLASSPATH已经设置)[重复]
【发布时间】:2017-07-03 14:58:00
【问题描述】:

我在命令行上运行 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.javasuccesfully。

当我尝试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 的 cmets 和 mirmdasif 的回复中看到的 Hereand 下方,您需要将当前工作目录添加到 CLASSPATH

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

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

【问题讨论】:

  • 你能分享你的 HelloWorld.java 文件吗
  • 当然,很抱歉没有添加它。不过,语法对我来说似乎不错......现在添加它。
  • 这就是您的HelloWorld.java 的全部内容?没有包装声明?
  • 我尝试添加一个包声明,它没有工作。如果您提供更好的代码示例来测试,我将很乐意尝试。正如我所说,我正在尝试设置它以便开始学习和练习,所以我几乎不知道包装声明的用途。谢谢!
  • 如果你看一下How should I set CLASSPATH,你会注意到它有. 前面的lib 条目,我在你的条目中没有看到。

标签: java windows cmd console system-variable


【解决方案1】:

问题在于您的 CLASS_PATH 变量。

指定类路径的首选方法是使用 -cp 命令行开关。这允许为每个应用程序单独设置 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

【讨论】:

  • 该命令不能解决问题,但我手动将类路径设置为.;C:\Program Files\Java\jdk1.8.0_121\lib\*,它就完成了!谢谢!
  • 其实我只是在命令提示符下做同样的事情
  • 我从控制台尝试过,但它不会改变它。也许系统变量窗口已打开,因此无法访问它或类似的东西。再次感谢您的帮助!
【解决方案2】:

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

示例:Java Windows7 System32 folder java.exe

【讨论】:

  • System32 中没有 java.exe! :( 但是java -classpath . HelloWorld 有效。似乎我错误地配置了CLASSPATH
【解决方案3】:

只要不断更新类路径中的环境变量即可: 错误:无法找到或加载主类 XXX

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

【讨论】:

    猜你喜欢
    • 2016-12-17
    • 2018-11-02
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 2013-01-17
    • 2016-01-16
    • 2021-06-06
    相关资源
    最近更新 更多