如你所见:
我将 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 项目中运行相同的代码是可行的。
有人知道如何解决这个问题吗?
最佳答案
您需要在 build.properties bin.includes 条目中添加 jar 文件。此外,在您的 MANIFEST.MF 文件中,需要将它们添加到 Runtime->Classpath 列表中(对应于 MANIFEST.MF 中的 Bundle-ClassPath 条目)。
编辑:如果您只是将它们放在引用的库中,OSGi 系统将不会意识到这一事实。
关于java - Eclipse 插件 : java. lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18105361/