java.lang.NoClassDefFoundError:org / eclipse / ui / plugin / AbstractUIPlugin

时间:2013-08-19 09:26:44

标签: eclipse eclipse-plugin headless

我在eclipse中有一个插件,这是完美的工作。 现在我必须实现无头插件功能。

我在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:插件de。 *无法加载类de。* .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 

1 个答案:

答案 0 :(得分:0)

正如堆栈跟踪中的错误消息所示,您的插件依赖于AbstractUIPlugin,但未安装此捆绑包。

您必须从代码中删除所有UI引用,然后重试。