2013-08-19 53 views
0

我在eclipse中有一個插件,它是完美的工作。 現在我必須實現無頭插件功能。java.lang.NoClassDefFoundError:org/eclipse/ui/plugin/AbstractUIPlugin

添加以下代碼plugin.xml中

<extension 
    id="id1" 
    point="org.eclipse.core.runtime.applications"> 
    <application> 
    <run 
      class="de.**.HeadlessPlugin"> 
    </run> 
    </application> 

然後創建下面的類 「HeadlessPlugin」

package de.tsystems.together.mqc.impl; 
import org.eclipse.core.runtime.CoreException; 
import org.eclipse.core.runtime.IExecutableExtensionFactory; 
import org.eclipse.core.runtime.IPlatformRunnable; 
import org.eclipse.equinox.app.IApplication; 
import org.eclipse.equinox.app.IApplicationContext; 


public class HeadlessPlugin implements IExecutableExtensionFactory { 

    public HeadlessPlugin() 
    { 

    } 

    public Object create() throws CoreException { 
     System.out.println("Hello world"); 
     return null; 
    } 
} 

我正確導出插件和安裝在同一一個新的eclipse實例。 然後我試着通過CMD啓動插件:

java -jar "plugins/org.ecplise.equinox.launcher_1.1.1.R36x_v20101122_1400.jar" org.eclipse.core.launcher.Main -application de.***.id1 

經過這次日食發生錯誤:

org.eclipse.core.runtime.CoreException:插件德。 *無法加載課程。* .HeadlessPlugin。

有沒有人有想法?

堆棧跟蹤:

!ENTRY org.eclipse.osgi 4 0 2013-08-19 14:15:47.344 
!MESSAGE Application error 
!STACK 1 
org.eclipse.core.runtime.CoreException: Plug-in de.** was unable to load class de.**.HeadlessPlugin. 
... 
Caused by: org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException: An error occurred while automatically activating bundle de.** (1522). 
... 
Caused by: org.osgi.framework.BundleException: The activator de.**.Plugin for bundle de.** is invalid 
... 
Caused by: java.lang.NoClassDefFoundError: org/eclipse/ui/plugin/AbstractUIPlugin 
+0

爲什麼Eclipse無法加載'de。*。HeadlessPlugin'類? –

+0

這就是我的問題... –

+0

請發佈堆棧跟蹤。 –

回答

0

如堆棧跟蹤錯誤消息說,你的插件依賴於AbstractUIPlugin但沒有安裝該軟件包。

您將不得不從代碼中刪除所有UI參考,然後重試。

+0

以下消息現在在日誌文件中: 在註冊表中找不到應用程序「id1」。 –

+0

好的,所以您的原始ID是正確的(正如完全限定的名稱所示,使用插件前綴時,在從其他插件引用應用程序ID時使用http://help.eclipse.org/kepler /index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fproduct_def_extpt.htm)。爲什麼Eclipse無法加載類de。*。HeadlessPlugin? –

+0

完全限定的名稱是唯一的。這個包裝結構也是獨一無二的。 「爲什麼Eclipse無法加載類de。*。HeadlessPlugin?」 這就是我的問題:D ^^ –