我的Eclipse工作区中有一个插件项目。当我右键单击项目并单击“Run as Eclipse Application”时,将打开另一个Eclipse实例并成功安装插件。单击插件按钮后,应用程序将打开。
但是,当我导出项目时,创建jar并将jar放在plugins文件夹下,我可以看到插件按钮,但是当我单击它时,应用程序没有打开。
下面,我将展示正在执行的java类:
Bundle bundle = Platform.getBundle("com.example.eclipse.plugin");
URL url = FileLocator.find(bundle, new Path("webspy/lib/abc.jar"), null);
File file=null;
try {
url = FileLocator.toFileURL(url);
file = URIUtil.toFile(URIUtil.toURI(url));
String[] str={"java", "-jar", file.getAbsolutePath()};
ProcessBuilder pb = new ProcessBuilder(str);
Process p = pb.start();
} catch (URISyntaxException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
plugin.xml 文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.ui.actionSets">
<actionSet
label="Sample Action Set"
visible="true"
id="com.example.eclipse.plugin.actionSet">
<menu
label="FEAT"
id="sampleMenu">
<separator
name="StartWebSpy">
</separator>
</menu>
<action
label="&Start WebSpy"
icon="icons/sample.gif"
class="com.example.eclipse.plugin.actions.SampleAction"
tooltip="Start WebSpy"
menubarPath="sampleMenu/sampleGroup"
toolbarPath="sampleGroup"
id="com.example.eclipse.plugin.actions.SampleAction">
</action>
</actionSet>
</extension>
</plugin>
单击按钮后必须运行可执行jar。当插件jar放在plugins文件夹中时,不会发生这种情况。请帮助我找不到的东西。
答案 0 :(得分:0)
问题是您的JAR文件webspy/lib/abc.jar
未包含在导出的插件com.example.eclipse.plugin
中。因此,单击该按钮时,不会打开应用程序(因为找不到JAR文件)。检查错误日志(窗口 - &gt;显示视图 - &gt;错误日志),您将看到Unhandled event loop exception
。
要解决此问题,您必须明确声明导出的插件中包含abc.jar
文件。这可以通过选中abc.jar
文件的复选框在 build.properties 文件中完成(特别是在二进制构建部分中)。