Eclipse在jar中执行文件

时间:2011-03-15 16:04:21

标签: java eclipse jar eclipse-plugin eclipse-rcp

我正在开发Eclipse产品。在我的插件中,我添加了一个我需要执行的可执行文件(.exe)。当我从eclipse启动产品时,使用我的文件系统上的可执行文件的路径引用该文件,一切正常。

当我导出产品时,插件被打包在一个包含可执行文件的jar文件中。当它引用文件时,路径类似于:

$path_to_the_plugin_jar!/$path_to_exe_file_inside_the_jar

使用此路径启动新进程抛出异常。

我如何引用jar中的文件?我怎么能执行该文件?

我可以在使用eclipse导出产品时提取文件吗?

感谢

3 个答案:

答案 0 :(得分:3)

EXE文件需要由Windows执行。出于所有实际目的,jar文件是一个zip文件,因此您基本上需要弄清楚如何让Windows在ZIP文件中运行EXE文件。

据我所知,不存在此类工具,因此您必须将EXE文件解压缩到临时位置,然后从那里运行。

答案 1 :(得分:0)

在执行之前,您可以将文件解压缩到捆绑状态位置。 类似的东西:

InputStream stream = FileLoactor.openStream(myBundle, new Path("path/to/exe/")
IPath pathUnpacked = myBundle.getStateLocation().append("myExe.exe");
writeToDisk(stream, pathUnpacked);
Program.launch(pathUnpacked.toOSString());

HTH汤姆

答案 2 :(得分:0)

感谢您的回答。

正如Konstantin Komissarchik建议的那样,我解决了将产品从基于插件的转换为基于功能的问题,并在feature.xml文件中为插件指定了“Unpack ....”。

当我导出产品时,插件会在文件夹中展开,我可以参考我需要的文件。