在我正在开发的eclipse插件中,我需要从插件中执行exe文件。 为此,我使用的是java代码:
p = Runtime.getRuntime().exec(command);
p
处理的位置。这很好用。
然而,当部署插件时(已经在我的开发环境中使用“run eclipse应用程序”),插件正在我的eclipse所在的文件夹中寻找exe文件(在eclipse附近) .exe文件)。我不想把我的exe放在那里。
我希望eclipse将它放在插件jar中(或者在其他可以找到这些资源文件的文件夹中),并且exec
命令会在那里找到它。轻微添加:要运行,我的exe文件需要一个dll,我放在与exe相同的目录中。所以当它从插件运行时,exe需要能够找到这个dll。
我该怎么做?
答案 0 :(得分:2)
您必须在exec
命令中指定exe的完整路径。要获得包中exe的完整路径,请使用
URL url = FileLocator.resolve(FileLocator.find(Platform.getBundle("my.bundle.id"), new Path("path/within/my/bundle.exe"), Collections.EMPTY_MAP));
这当然只有在您的软件包未部署为jar文件而是作为文件夹时才有效。如果要将bundle部署为jar文件,则必须在执行之前解压缩exe。