当前位置: 首页 > 知识库问答 >
问题:

为什么Java中会出现NoClassDefFoundError?

明安阳
2023-03-14

我得到一个NoClassDefFoundError当我运行我的Java应用程序。典型的原因是什么?

共有3个答案

红甫
2023-03-14

下面是说明java.lang.NoClassDefFoundError的代码。详解请看贾里德的回答。

NoClassDefFoundErrorDemo。JAVA

public class NoClassDefFoundErrorDemo {
    public static void main(String[] args) {
        try {
            // The following line would throw ExceptionInInitializerError
            SimpleCalculator calculator1 = new SimpleCalculator();
        } catch (Throwable t) {
            System.out.println(t);
        }
        // The following line would cause NoClassDefFoundError
        SimpleCalculator calculator2 = new SimpleCalculator();
    }

}

简单计算器。JAVA

public class SimpleCalculator {
    static int undefined = 1 / 0;
}
邬博涉
2023-03-14

这是由于代码依赖的类文件在编译时存在,但在运行时找不到。寻找构建时和运行时类路径的差异。

虞华翰
2023-03-14

虽然这可能是由于编译时和运行时之间的类路径不匹配造成的,但这不一定是真的。

在这种情况下,在我们的头脑中保持两到三个不同的例外是很重要的:

>

  • java。lang.ClassNotFoundException此异常表示在类路径上找不到该类。这表明我们试图加载类定义,而类路径上不存在该类。

    java.lang.NoClassDefFoundError此异常表示JVM在其html" target="_blank">内部类定义数据结构中查找类的定义,但没有找到。这不同于说它不能从类路径加载。通常,这表明我们以前试图从类路径加载一个类,但由于某种原因失败了——现在我们正试图再次使用这个类(因此需要加载它,因为它上次失败了),但我们甚至不会尝试加载它,因为我们之前没有加载它(并且有理由怀疑我们会再次失败)。较早的故障可能是ClassNotFoundExcture或ExceptionIn初始的错误(表示静态初始化块中的故障)或任何数量的其他问题。关键是,NoClassDefFoundError不一定是类路径问题。

  •  类似资料:
    • 问题内容: 当我运行以下代码时: 我得到一个异常说: 为什么会出现此异常? 编辑:tmpList是一个LinkedList,其每个节点都包含DepConfAttr类型的对象。 我正在基于内存(首先是最高内存)对tmpList进行排序,这是DepConfAttr对象的属性之一。 上面的代码反映了我要通过以下代码实现的目标 问题答案: 为什么会出现此异常? 您要遍历列表,而不是通过迭代器从列表中删除一

    • 错误:第 1 行的解析错误:函数搜索(sour ^ 期望“字符串”、“数字”、“空”、“真”、“假”、“{”、“[”,得到“未定义” 代码:

    • PWA 是 Progressive Web Apps 的缩写,翻译为渐进式网络应用。早在 2014 年, W3C 就公布过 Service Worker 的相关草案,但是其在生产环境被 Chrome 支持是在 2015 年。因此,如果我们把 PWA 的关键技术之一 Service Worker 的出现作为 PWA 的诞生时间,那就应该是 2015 年。在关注 PWA 是什么之前,先来了解一下为什么

    • 我实现了以下REST调用: 也是一个提供和使用application/x-protobuf的提供者类: 我的pom。xml看起来像: 我的小部件。原型: 选项java_package=“example”;选项java\u outer\u classname=“WidgetsProtoc”; 对于http://localhost:8080/RESTfulExample/widgets我得到以下错误消

    • 问题内容: 我已经阅读了 为什么在尝试在数据库中加载Blob时会出现java.lang.AbstractMethodError?,下载了我能找到的所有11g jdbc驱动程序,并将它们作为库和/或jar文件添加到了我的NetBeans应用程序中。我仍然不断收到相同的AbstractMethodError,这让我很生气!任何指导将不胜感激! 错误信息: 问题答案: 问题的原因是软件不兼容(jar文件

    • 问题内容: 前三行工作正常。当我再次尝试将字符串解析为日期时,出现错误。我该如何解决? 错误看起来像这样: 问题答案: 为我工作。在模式末尾使用“ SSSZ”而不是“ SZ”。