简而言之,我需要能够将已编译的可执行文件粘贴到 Java jar 文件中,然后能够从 Java 运行它(可能通过ProcessBuilder
)。
原因是我想在 ImageMagick 可执行文件周围使用 Java 包装器作为图像处理 Elastic Map Reduce 作业的组件。EMR 只希望获取一个 jar 文件,所以我认为没有空间在启动的数据节点上安装软件。
简而言之,我需要能够将已编译的可执行文件粘贴到 Java jar 文件中,然后能够从 Java 运行它(可能通过ProcessBuilder
)。
原因是我想在 ImageMagick 可执行文件周围使用 Java 包装器作为图像处理 Elastic Map Reduce 作业的组件。EMR 只希望获取一个 jar 文件,所以我认为没有空间在启动的数据节点上安装软件。
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();