类仍然没有找到
问题描述:
我正在开发一个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添加到VM参数中的类路径中。
答
根据我们的经验,NoClassDefFoundError
有时可能意味着找到一个类的多个版本,因为还有一个ClassNotFoundException
,如果找不到类,通常会引发该错误。
您的情况(XML解析器)的另一个原因可能与授权类有关。你是直接导入jdom类还是类似org.w3c ...?如果是这样,请查看一下我刚刚遇到的Java的“支持类”系统。
+0
的NoClassDefFoundError将被抛出,如果编译的代码是指不在类路径上的类。如果尝试使用反射来实例化一个类时,将抛出ClassNotFoundException,则无法找到名为class的类。 – akf 2009-12-18 14:05:58
我跑它作为Eclipse应用... – jau 2009-04-16 14:52:52