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/37863597/

相关文章:

java - 错误 : java. lang.UnsatisfiedLinkError with roboelectric and realm

java - 使用resteasy @Path注释时出现NoClassDefFoundError

scala - Tomcat 7 随机崩溃并出现 ClassNotFoundException

java - NoClassDefFoundError 但类存在

java - 在 android studio 中实现 Runnable 类时出现 NoClassDefFoundError

java - 通过复制目录安装 JRE 是否会影响类数据共享 (CDS)?

java - 如果输入一个数字,同时将每个数字加上 n 次幂,对应于下面给出的公式,如何对数字进行求和?

java - Selenium HtmlUnitDriver 中的未知主机

java.lang.NoClassDefFoundError : com/hp/hpl/jena/shared/BadURIException on running servlet 错误

java - Twitter4j Google App Engine - java.lang.NoClassDefFoundError