【问题标题】:Java.lang.classnotfoundexception - HelloWorld.class [duplicate]Java.lang.classnotfoundexception - HelloWorld.class [重复]
【发布时间】:2018-09-18 11:57:09
【问题描述】:

我似乎无法理解导致此错误的原因。我已将环境变量中的 CLASSPATH 设置为 C:\Program Files\Java\jdk-10.0.2\bin

我可以使用javac HelloWorld.java 将代码编译成.class 文件。但是,当尝试使用 java HelloWorld 运行 .class 文件时,我收到以下错误:

我从C:\Java 运行代码,这是我的.java.class 文件的目录。

 c:\Java>java HelloWorld
 Error: Could not find or load main class HelloWorld
 Caused by: java.lang.ClassNotFoundException: HelloWorld

代码:

public class HelloWorld {

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

任何提示将不胜感激。

【问题讨论】:

  • 类文件是否位于您尝试从 (c:\Java) 运行它的文件夹中?
  • 设置你的类路径,你的 .class 文件在哪里。

标签: java class compilation classnotfoundexception


【解决方案1】:

CLASSPATH 环境变量不应该指向你的 java 安装位置(你真的不需要任何环境变量来指向它。一些过时的工具可能需要你设置 JAVA_HOME,但不需要设置 'bin ' dir 但对其父级)。

它应该指向你的类文件的位置。

如果您的HelloWorld.class 文件没有包声明并且位于C:\java\HelloWorld.class,那么C:\java 需要是您的类路径。

您可以为此使用 CLASSPATH,但是...不要。您可以在一台机器上拥有多个项目,因此“一台机器,一个类路径”的概念是愚蠢的。使用命令行参数:

java -cp c:\java HelloWorld

【讨论】:

  • 谢谢,我对 PATH 和 CLASSPATH 变量感到困惑,将按照建议使用参数,谢谢
【解决方案2】:

如果你的类路径,

CLASSPATH=C:\Program Files\Java\jdk-10.0.2\bin

您的类加载器将从那里查找 .class 文件,

将您当前的目录包含到您的 CLASSPATH 中,在您的情况下,您的 .class 文件位于 C:\Java,因此 java 找不到您的 .class 文件,试试这个

CLASSPATH=C:\Java

CLASSPATH 变量是 java 查找 .classjar 文件路径的位置

PATH and CLASSPATH

【讨论】:

  • 我们需要JDK路径吗?
  • 不,我们不需要,我想他可能需要它。
  • 好吧,反正没有.class(或.jar)。,..
  • 谢谢你,我想我在某个地方读到了需要将类路径设置为 JDK 目录,以便它知道如何启动“javac”等
  • 好的,路径和类路径不同。
猜你喜欢
  • 2019-02-04
  • 2018-03-15
  • 2020-06-08
  • 1970-01-01
  • 2013-08-01
  • 2016-08-03
  • 1970-01-01
  • 2018-06-16
  • 2014-09-24
相关资源
最近更新 更多