我在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
答案 0 :(得分:0)
正如堆栈跟踪中的错误消息所示,您的插件依赖于AbstractUIPlugin
,但未安装此捆绑包。
您必须从代码中删除所有UI引用,然后重试。