6

ご覧のように:

ここに画像の説明を入力

参照ライブラリに追加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 プロジェクトで同じコードを実行すると機能します。

これを修正する方法を知っている人はいますか?

4

4 に答える 4

7

build.properties の bin.includes エントリに jar ファイルを追加する必要があります。また、MANIFEST.MF ファイルで、Runtime->Classpath リスト (MANIFEST.MF の Bundle-ClassPath エントリに対応) に追加する必要があります。

編集: 参照されたライブラリにそれらを配置しただけでは、OSGi システムはその事実を認識しません。

于 2013-08-07T14:06:04.793 に答える
3

これは、jar ファイルが他の jar ファイルに依存しており、それらをプロジェクトに追加していない場合にも発生する可能性があります。

于 2013-08-07T14:13:10.077 に答える
2

プロジェクト プロパティでエクスポートするようにマークされていません: [プロジェクト プロパティ] > [注文とエクスポート] タブ > .jar ファイルがエクスポート用にチェックされていることを確認します。

于 2016-08-19T23:50:52.560 に答える