繁体   English   中英

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

[英]How to run a command when the eclipse plugin is clicked?

我的Eclipse工作区中有一个插件项目。 当我右键单击该项目并单击“以Eclipse应用程序运行”时,将打开另一个Eclipse实例,并且插件已成功安装。 单击插件按钮后,将打开应用程序。

但是,当我导出项目时,创建jar并将jar放在plugins文件夹下,我能够看到plugin按钮,但是当我单击它时,应用程序无法打开。

下面,我显示了正在执行的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文件夹中时不会发生这种情况。 请帮助我所缺少的。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM