java - 为什么我在 Java 中收到 NoClassDefFoundError 错误?

标签 java noclassdeffounderror

当我运行 Java 应用程序时,出现 NoClassDefFoundError。造成这种情况的原因通常是什么?

最佳答案

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

在这种情况下,在我们的脑海中记住两个或三个不同的异常非常重要:

  1. java.lang.ClassNotFoundException 此异常表示在类路径中未找到该类。这表明我们正在尝试加载类定义,但该类在类路径中不存在。

  2. java.lang.NoClassDefFoundError 此异常表示 JVM 在其内部类定义数据结构中查找类的定义,但没有找到它。这与无法从类路径加载它不同。通常这表明我们之前尝试从类路径加载一个类,但由于某种原因失败了 - 现在我们尝试再次使用该类(因此需要加载它,因为上次失败了),但是我们'我们甚至不会尝试加载它,因为我们之前加载失败(并且有理由怀疑我们会再次失败)。早期的失败可能是 ClassNotFoundException 或 ExceptionInInitializerError (指示静态初始化 block 中的失败)或任何其他问题。重点是,NoClassDefFoundError 不一定是类路径问题。

关于java - 为什么我在 Java 中收到 NoClassDefFoundError 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37925885/

相关文章:

java - 什么更快? 1)向treeset添加元素VS 2)添加到Hashset然后对hashset元素进行排序

java - 如何在与套接字服务器相同的计算机(IP)上运行套接字客户端?

使用 MongoDB 驱动程序时出现 java.lang.NoClassDefFoundError

android - java.lang.NoClassDefFoundError 异常

java - 无法使用 messageSource 解析 spring 消息代码

java - 从 RecyclerView 中删除多个选定的项目

java - 线程 "AWT-EventQueue-0"java.lang.NoClassDefFoundError : com/sun/image/codec/jpeg/JPEGCodec 中出现异常

java - 在 Java 中运行 Daemon 类时出错?

java - Android 构建返回 "java.lang.NoClassDefFoundError: com/android/tools/lint/LintCliClient"

java - 用于查找一组数字中重复出现的数字集的正则表达式