Eclipse插件:java.lang.NoClassDefFoundError

dis*_*ame 5 java eclipse eclipse-plugin exception

如你看到的:

在此输入图像描述

我添加jni4net.j-0.8.6.0.jar到我的引用库但我stell收到一个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
Run Code Online (Sandbox Code Playgroud)

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

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

Tas*_*kos 6

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

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


Ste*_*e B 6

我的Referenced Libraries文件夹中的.jar与我的问题完全相同(通过右键单击项目添加了jar - > Build Path - > Configure Build Path - > Libraries - > Add External Jar).

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