单击eclipse插件时如何运行命令?

时间:2016-01-22 11:36:21

标签: java eclipse jar cmd eclipse-plugin

我的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="&amp;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文件夹中时,不会发生这种情况。请帮助我找不到的东西。

1 个答案:

答案 0 :(得分:0)

问题是您的JAR文件webspy/lib/abc.jar未包含在导出的插件com.example.eclipse.plugin中。因此,单击该按钮时,不会打开应用程序(因为找不到JAR文件)。检查错误日志(窗口 - &gt;显示视图 - &gt;错误日志),您将看到Unhandled event loop exception

要解决此问题,您必须明确声明导出的插件中包含abc.jar文件。这可以通过选中abc.jar文件的复选框在 build.properties 文件中完成(特别是在二进制构建部分中)。