我正在使用 eclipse 来开发我的应用程序。在我的应用程序中,我有几个项目,这些项目在 EAR 项目中有引用。
在其中一个项目中,我创建了一个接口(interface)并实现了该接口(interface)。
我正在尝试为该类创建对象
MyInterface myObj = new MyClass();
它不起作用,所以我以 Debug模式启动服务器。我收到 NoClassDefFoundError
。
知道为什么我会收到此错误吗?我已经在我的项目构建路径中添加了新项目。如果我写
MyInterface myObj = null;
我没有收到任何错误。
最佳答案
检查您在 Eclipse 中运行的运行时配置所使用的类路径,该路径通常由项目库和源文件夹定义。
由于您正在使用 EAR,因此您可能会使用应用程序服务器,并且您需要知道它们中的大多数都与每个 ear 或 war 使用一个父类加载器和一个子类加载器。这意味着,如果父类加载器加载的类尝试实例化仅在子类加载器中的类,您将收到 NoClassDefinedError (反之则不会)。
关于java - 没有发现类定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4732563/