0

我正在开发一个 Eclipse 插件 rcp,但遇到了 NoClassDefFoundError

线程“Thread-7”中的异常 java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder  
    在 org.geonames.WebService.search(WebService.java:783)  
    在 geo.GeocoderGeonames$SearchThread.run(GeocoderGeonames.java:119)  
引起:java.lang.ClassNotFoundException:org.jdom.input.SAXBuilder  
    在 org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:483)  
    在 org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399)  
    在 org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387)  
    在 org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87)  
    在 java.lang.ClassLoader.loadClass(未知来源)  
    在 java.lang.ClassLoader.loadClassInternal(未知来源)  
    ... 2 更多

据说找不到的类在我添加到构建路径的 jar 中。当正在运行的应用程序输入需要此类的代码时,我没有得到任何编译错误等只有这个异常......

还有其他地方我需要添加罐子吗

4

3 回答 3

1

阅读内容后,将 jar 添加到 MANIFEST.MF,从而解决了问题。据我了解,eclipse启动了几个类加载器,它们只看到MANIFEST.MF告诉他们看到的内容并忽略了构建路径......

于 2009-04-16T15:48:26.680 回答
0

你是如何运行你的插件的?您可能需要将 JAR 添加到 VM 参数中的类路径中。

于 2009-04-16T14:46:16.917 回答
0

根据我们的经验,aNoClassDefFoundError有时意味着找到了多个版本的类,因为ClassNotFoundException如果找不到类,通常也会抛出一个。

您的情况(XML解析器)的另一个原因可能是带有认可的类。您是直接导入 jdom 类还是类似 org.w3c ...?如果是这样,请查看 Java 的“认可类”系统,这是我最近遇到的。

于 2009-04-16T14:59:51.440 回答