2013-08-07 65 views
4

正如你可以看到:Eclipse插件:java.lang.NoClassDefFoundError

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中運行相同的代碼。

有沒有人知道如何解決這個問題?

+1

我覺得其中一個jar是在系統的classpath中,這個eclipse看不到。如果可能的話,將該jar也移動到項目類路徑中。 –

+0

如果這是一個Web應用程序,請將該jar放入WEB-INF/lib文件夾中。否則,我建議在你的項目中創建一個文件夾(我傾向於稱它爲lib),然後將jar放到那裏,然後引用這個文件夾和所有的jar作爲構建路徑的一部分。 –

+0

地獄是的,你是對的。我沒有想到這個!也許你也可以這樣說:我有一個.dll文件,調試的Eclipse應用程序需要它。有沒有辦法告訴Eclipse插件導出我已經複製到我的項目中的.dll文件? – displayname

回答

4

您需要將jar文件添加到您的build.properties bin.includes條目中。另外,在MANIFEST.MF文件中,需要將它們添加到Runtime-> Classpath列表中(對應於MANIFEST.MF中的Bundle-ClassPath條目)。

編輯:如果你只是把它們放在引用的庫中,OSGi系統就不會意識到這個事實。

2

如果您的jar文件依賴於其他一些jar文件供他們使用,並且您沒有將它們添加到項目中,也可能發生這種情況。

5

我在我的Referenced Libraries文件夾(jar是通過右鍵單擊項目 - >構建路徑 - >配置構建路徑 - >庫 - >添加外部Jar添加了與我的.jar完全相同的問題。

固定它:右鍵單擊項目 - >構建路徑 - >配置構建路徑 - >訂單和導出。確保你的.jar文件被選中。這將其添加到構建類路徑。你會認爲這會在通過上述方法首次添加.jar後自動檢查,但事實並非如此。

1

它沒有標記爲在項目屬性中導出: 「項目屬性」>「訂單和導出」選項卡>確保.jar文件被檢查導出。