仍未找到构建路径jar中的类

时间:2009-04-16 14:39:59

标签: java eclipse-rcp

我正在开发一个eclipse插件rcp而且我遇到了NoClassDefFoundError

Exception in thread "Thread-7" java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder  
    at org.geonames.WebService.search(WebService.java:783)  
    at geo.GeocoderGeonames$SearchThread.run(GeocoderGeonames.java:119)  
Caused by: java.lang.ClassNotFoundException: org.jdom.input.SAXBuilder  
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:483)  
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399)  
    at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387)  
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87)  
    at java.lang.ClassLoader.loadClass(Unknown Source)  
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)  
    ... 2 more

无法找到的类位于我已添加到构建路径的jar中。当正在运行的应用程序输入需要此类的代码时,我没有得到任何编译错误等仅此异常...

我需要添加jar的其他地方

3 个答案:

答案 0 :(得分:1)

阅读this后,将jar添加到MANIFEST.MF,解决了问题。 据我了解,eclipse启动了几个类加载器,它们只能看到MANIFEST.MF告诉他们看到的内容和内置路径...

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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