Eclipse插件:java.lang.NoClassDefFoundError

时间:2013-08-07 13:55:42

标签: java eclipse exception eclipse-plugin

如你所见:

enter image description here

我将jni4net.j-0.8.6.0.jar添加到我引用的库中,但我收到了java.lang.NoClassDefFoundError异常:

java.lang.NoClassDefFoundError: net/sf/jni4net/Bridge
    at sibeclipseplugin.debug.DebuggerInterface.initialize(DebuggerInterface.java:15)
    at sibeclipseplugin.debug.SibDebugTarget.<init>(SibDebugTarget.java:65)
    at sibeclipseplugin.ui.launch.LaunchConfigurationDelegate.launch(LaunchConfigurationDelegate.java:30)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1018)
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1222)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Caused by: java.lang.ClassNotFoundException: net.sf.jni4net.Bridge cannot be found by SIBEclipsePlugin_0.0.0.1
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 8 more

我不知道问题是什么。当我以Eclipse-Application启动项目时,它无法找到该类。在普通的Java-Project中运行相同的代码。

有人知道如何解决这个问题吗?

4 个答案:

答案 0 :(得分:6)

我的Referenced Libraries文件夹中的.jar出现了完全相同的问题(jar通过右键单击项目添加 - &gt;构建路径 - &gt;配置构建路径 - &gt;库 - &gt;添加外部罐)。

修正了它:右击项目 - &gt;构建路径 - &gt;配置构建路径 - &gt;订单和出口。确保选中.jar文件。这会将其添加到构建类路径。您认为在首次通过上述方法添加.jar后会自动检查,但事实并非如此。

答案 1 :(得分:5)

您需要在build.properties bin.includes条目中添加jar文件。此外,在MANIFEST.MF文件中,需要将它们添加到Runtime-&gt; Classpath列表中(对应于MANIFEST.MF中的Bundle-ClassPath条目)。

编辑:如果您只是将它们放在引用的库中,OSGi系统将不会意识到这一点。

答案 2 :(得分:3)

如果你的jar文件依赖于其他一些jar文件进行woking而你还没有在你的项目中添加它们,也可能发生这种情况。

答案 3 :(得分:2)

在项目属性中未标记为导出: “项目属性”&gt; “订单和导出”标签&gt;确保检查.jar文件是否导出。