0

我在 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 
4

1 回答 1

0

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

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

于 2013-08-19T09:31:09.133 回答