3

简而言之,我需要能够将已编译的可执行文件粘贴到 Java jar 文件中,然后能够从 Java 运行它(可能通过ProcessBuilder)。

原因是我想在 ImageMagick 可执行文件周围使用 Java 包装器作为图像处理 Elastic Map Reduce 作业的组件。EMR 只希望获取一个 jar 文件,所以我认为没有空间在启动的数据节点上安装软件。

4

1 回答 1

3

jar 中的可执行文件是一个资源,您可以通过 Stream 访问它并将可执行文件展开到 TEMP 目录,然后使用 ProcessBuilder 执行它。

File target = new File( System.getProperty( "java.io.tmpdir" ), <filename> );
InputStream  is =
   getClass().getClassLoader().getResourceAsStream( <path to rc> );
OutputStream os = new FileOutPutStream( target );
<copy is to os>
Process p = new ProcessBuilder( target ).start();
于 2013-04-09T18:59:44.857 回答