的NoClassDefFoundError

时间:2011-01-19 07:02:29

标签: java class

我正在使用eclipse来开发我的应用程序。在我的应用程序中,我有很少的项目,这些项目在EAR项目中有参考。

在其中一个项目中,我为该界面创建了一个接口和实现。

我正在尝试为该类提供对象

MyInterface myObj = new MyClass();

它没有工作,所以我在调试模式下启动了服务器。我得到了NoClassDefFoundError

我知道为什么会收到此错误。我已经在项目构建路径中添加了新项目。如果我写

MyInterface myObj = null; 

我没有收到任何错误。

2 个答案:

答案 0 :(得分:0)

检查您在Eclipse中运行的运行时配置使用的类路径,该路径通常由项目库和源文件夹定义。

由于您正在使用EAR,因此您可能使用应用服务器,并且您需要知道其中大多数都使用一个父类加载器和每个耳朵或战争的子类加载器。这意味着如果由父类加载器加载的类试图实例化一个只在子类加载器中的类,则会得到一个NoClassDefinedError(反过来你没有)。

答案 1 :(得分:0)

发生在我身上。问题不在于类路径中缺少“MyClass”。在我的案例中缺少的是MyClass中的一个依赖项(即导入),并且在调用构造函数时它失败了。

检查我的相关问题和答案:Class Constructor fails throwing Exception on Class Loading以及之前的问题,即我所有问题开始时的问题:Weird behavior with Constructor and Class. Application hangs `forever` on Constructor