8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

我该如何解决“java.lang.NoClassDefFoundError”?

Adeel Ansari 2月前

170 0

我尝试了 Oracle Java 教程中的两个示例。它们都可以正常编译,但在运行时,都出现了此错误:Exception in thread \'main\' java.lang.NoClassDefFoundError:

Java 教程 中的两个示例 。它们都可以正常编译,但在运行时都出现此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: graphics/shapes/Square
    at Main.main(Main.java:7)
Caused by: java.lang.ClassNotFoundException: graphics.shapes.Square
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more

我想我可能将 Main.java 文件放在了错误的文件夹中。

以下是目录层次结构:

graphics
 Main.java
 shapes
|    Square.java
|    Triangle.java
 linepoint
|    Line.java
|    Point.java
 spaceobjects
|    Cube.java
|    RectPrism.java

下面是 Main.java

import graphics.shapes.*;
import graphics.linepoint.*
import graphics.spaceobjects.*;

public class Main {
    public static void main(String args[]) {
        Square s = new Square(2, 3, 15);
        Line l = new Line(1, 5, 2, 3);
        Cube c = new Cube(13, 32, 22);
    }
}

我在这里做错了什么?

更新

在我将 Main 类放入 graphics 包(我添加 package graphics; 到它)之后,将类路径设置为 _'_test_'(包含图形的文件夹),对其进行编译,然后使用 java graphics.Main (从命令行)运行它,它就起作用了。

真的很晚更新#2

我没有使用 Eclipse (只使用 Notepad++ 和 JDK),上面的更新解决了我的问题。但是,似乎这些答案中有许多是针对 Eclipse 和 IntelliJ IDEA ,但它们的概念相似。

帖子版权声明 1、本帖标题:我该如何解决“java.lang.NoClassDefFoundError”?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Adeel Ansari在本站《java》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我已经测试了案例 2 和案例 3,它不是 NoClassDefFoundError,而是 ExceptionInInitializerError 案例 2. 找到 Class 文件,但在初始化静态变量时引发异常 案例 3. 找到 Class 文件,在初始化静态块时引发异常

返回
作者最近主题: