能否将可执行文件打成jar包以便从Java中运行?

3
简单地说,我需要能够将已编译的可执行文件放入Java jar文件中,并通过Java运行它(可能通过ProcessBuilder实现)。
为什么这样做呢?因为我想使用Java包装ImageMagick可执行文件作为图像处理Elastic Map Reduce作业的组件。 EMR仅期望接收一个jar文件,因此我认为没有安装软件在启动的数据节点上的余地。

1
使用ZIP流,在您的jar文件中打包此可执行文件,然后在运行时将其解压缩到临时文件夹并运行。 - user784540
1个回答

3

jar包中的可执行文件是一种资源,您可以通过流方式访问它,并将可执行文件扩展到临时目录,然后使用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();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接