当前位置: 首页 > 面试题库 >

在java中NoClassDefFoundError 异常是如何发生的?

闽朝
2023-03-14
问题内容

在java中NoClassDefFoundError 异常是如何发生的?怎样避免?


问题答案:

这可能是由于编译时和运行时之间的类路径不匹配导致的,但不一定是正确的。

在这种情况下,请务必牢记两个或三个不同的异常:

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

java.lang.NoClassDefFoundError 此异常表明JVM在其内部类定义数据结构中查找了类的定义,但未找到。这与说无法从类路径中加载不同。通常,这表明我们以前曾尝试从类路径中加载类,但由于某种原因而失败-现在我们正尝试再次使用该类(由于上次失败,因此需要对其进行加载),但是我们甚至不打算尝试加载它,因为我们无法更早加载它(并且合理地怀疑我们会再次失败)。较早的故障可能是ClassNotFoundException或ExceptionInInitializerError(指示静态初始化块中的故障)或许多其他问题。关键是,NoClassDefFoundError不一定是类路径问题。



 类似资料:
  • 问题内容: 在使用java时经常会发生数组越界异常,它是如何发生的?怎么避免? 问题答案: 这异常通常是我们所说的数组下标越界,索引为负或大于或等于数组的大小。 数组的下标从0开始,最大是:array.length,例如,下面的代码误认为数组从1开始: 应该这样来做:

  • 问题内容: 我正在使用jackcess来访问我的访问数据库。但是我在追随例外 我已经使用了jdbc,但是它也不起作用。如何解决我的问题? 问题答案: Jackcess有一个依赖于Jakarta Commons的郎 。您需要确保common lang和其他依赖项在您的类路径中。

  • 问题内容: 我在Spring和Hibernate中是新手,所以我尝试基于Spring 3 + Hibernate 4来实现一些简单的Web应用程序,而当我启动tomcat时,我有以下异常: 我发现该类在hibernate 3的hibernate-core中,但是在hibernate 4中却找不到它。 我的context.xml中用于持久性的部分: 请帮我弄清楚为什么要尝试加载CacheProvid

  • 问题内容: 考虑这个简单的程序。该程序有两个文件: 和HelloWorld.java: 正如您在第一堂课中所看到的,我在其中想抛出异常的地方添加了一条注释(“ // throw exception”)。我必须为异常定义自己的类,还是可以在Java中使用一些常规的异常类? 问题答案: 您可以创建自己的Exception类: 在您的代码中:

  • 问题内容: 尝试在WebLogic 11g上导出时,它将引发NoClassDefFound异常。我检查了应用程序WAR,并将jasperreports-3.7.4.jar包含在WEB-INF / lib文件夹中。有什么错误? 堆栈跟踪 java.lang.NoClassDefFoundError:net / sf.jasperreports.engine.fill.JRBaseFiller。(JR

  • 问题内容: 我是C程序员,最近刚学习一些Java,因为我正在开发一个Android应用程序。目前,我处于一种情况。以下是一个。 现在,我希望在另一个类的其他地方使用方法MyMethod()的调用。如果有人可以为我提供一些代码片段,如何将异常传播到MyMethod()的调用者,以便可以在调用者方法的对话框中显示它们。 对不起,如果我对这个问题的回答不太清楚和奇怪。 问题答案: 只是首先不要捕获异常,