java - 线程 'main' java.lang.NoClassDefFoundError 中的异常

标签 java path classpath javac

当我尝试从 DOS 执行以下程序时,我得到以下结果..

以下程序位于 C:\Users\Apostolos\Documents\NetBeansProjects\Java1\src\java1

package java1;

public class MyProgram{

  public static void main(String[] args){
    System.out.println("Rome wasn’t burned in a day!");
  }
}

javac MyProgram.java 工作正常

但是 java MyProgram 给出以下内容:

Exception in thread "main" java.lang.NoClassDefFoundError: MyProgram (wrong name  

: java1/MyProgram)

位于 java.lang.ClassLoader.defineClass1( native 方法) 位于 java.lang.ClassLoader.defineClass(来源未知) 位于 java.security.SecureClassLoader.defineClass(来源未知) 位于 java.net.URLClassLoader.defineClass(来源未知) ................

为什么会发生这种情况?

我的环境变量:

CLASSPATH: .;C:\Program Files (x86)\Java\jre7\lib\ext\QTJava.zip;C:\Program Files\Java\jdk1.7.0_05\bin

路径:C:\Program Files\Java\jdk1.7.0_05\bin

JAVA_HOME:C:\Program Files\Java\jdk1.7.0_05

我在这里看到了类似的问题,但我找不到解决我的问题的方法。 预先感谢您!

最佳答案

使用java工具时应记住的两点:

  1. 将类添加到类路径中。
  2. 使用要运行的类的完全限定名称。

因此:

java -cp C:\Users\Apostolos\Documents\NetBeansProjects\Java1\bin java1.MyProgram

假设编译后存在以下文件:

C:\Users\Apostolos\Documents\NetBeansProjects\Java1\bin\java1\MyProgram.class
<小时/>

有关详细信息,请参阅:

关于java - 线程 'main' java.lang.NoClassDefFoundError 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17850516/

相关文章:

Java Unirest 禁用证书

reactjs - gatsby 中的静态文件图像路径

xcode - $PATH 在 xcode 中设置在哪里?

java - 类路径设置但 java.lang.NoClassDefFoundError com/google/protobuf/MessageOrBuilder 错误?

java - 如何在 Netbeans 的 list 类路径中包含 lib 文件夹

java - 在Python中实例化类——设置属性

java - Eclipse 是否有一组合理的默认类型过滤器?

c++ - Qt 中的 os.path.join()?

Java:类路径 JVM 上的多个资源中的哪一个?

java - 矩形去掉边