【问题标题】:Class in buildpath-jar still not found仍未找到 buildpath-jar 中的类
【发布时间】:2009-04-16 14:39:58
【问题描述】:

我正在开发一个 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 中。当正在运行的应用程序输入需要此类的代码时,我没有收到任何编译错误等只有这个异常......

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

【问题讨论】:

    标签: java eclipse-rcp


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • NoClassDefFoundError 如果编译后的代码引用了不在类路径中的类,则会抛出。如果在尝试使用反射实例化类时,如果找不到命名的类,则会抛出 ClassNotFoundException。
        猜你喜欢
        • 2014-05-29
        • 1970-01-01
        • 2014-11-18
        • 1970-01-01
        • 1970-01-01
        • 2010-12-27
        • 1970-01-01
        • 1970-01-01
        • 2020-11-09
        相关资源
        最近更新 更多