小编典典

是否可以打包可执行文件以便可以从Java运行它?

java

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

原因 ,是我想使用Java来包裹ImageMagick的可执行文件成分的图像处理弹性的Map
Reduce任务。EMR只希望获取一个jar文件,因此我认为没有空间在旋转的数据节点上安装软件。


阅读 221

收藏
2020-11-19

共1个答案

小编典典

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();
2020-11-19