2013-06-30 182 views
2

我在編輯eclipse插件代碼。只是一個首發,所以沒有太多的想法。只是想讓它運行atm。ClassNotFoundException即使該類包含在構建路徑中包含的jar文件中

運行時拋出的程序拋出ClassNotFoundException。我已將puakma.jar文件包含到項目的構建路徑中,並且還確認該類存在於SOAP包內的jar文件中。可能的問題是什麼?

堆棧跟蹤如下:

java.lang.NoClassDefFoundError: puakma/SOAP/SOAPFaultException 
    at puakma.coreide.ServerManager.createServerConnection(ServerManager.java:120) 
    at puakma.vortex.dialogs.server.AppSelectionDialog.listApplications(AppSelectionDialog.java:284) 
    at puakma.vortex.dialogs.server.AppSelectionDialog$6.run(AppSelectionDialog.java:234) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) 
Caused by: java.lang.ClassNotFoundException: puakma.SOAP.SOAPFaultException 
    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(ClassLoader.java:247) 
    ... 4 more 
+0

運行前清理並構建項目 –

+0

我試過了,它沒有工作 –

回答

3

您需要添加correspoinding罐子到類路徑下面的Eclipse插件:

  1. 打開你的plugin.xml
  2. 轉到Runtime選項卡
  3. 在classpath部分下點擊「Add」並選擇你已經放置在項目文件夾下的jar文件(比如說在lib下)。
  4. 現在乾淨,當你這樣做,它會添加相應的條目,如下MANIFEST.MF建設項目

Bundle-ClassPath: lib/foobar.jar, 
. 

添加罐子在Eclipse插件類路徑的方式是不同的來自普通的java項目,因爲它基於OSGi。

你可以從這個link.瞭解更多關於eclipse插件的classpath希望這會有所幫助。

+0

我以爲我可以右鍵單擊jar文件並將它們添加到構建路徑中。看起來這不起作用。我遵循你的方法,它運作良好。謝謝堆。 –

+1

@ nick -s你可以但構建類路徑與運行時類路徑不是一回事。 PDE知道,當你將一個jar添加到OSGi類路徑(運行時)時,你也希望它在構建類路徑中可用。 –

相關問題