hadoop—有没有可能将一个可执行文件放入jar中以便可以从java运行?

dgsult0t  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(288)

简单地说,我需要能够将已编译的可执行文件粘贴到javajar文件中,然后能够从java运行它(可能是通过 ProcessBuilder ).
原因是,我想在imagemagick可执行文件周围使用java Package 器作为图像处理弹性map reduce作业的组件。emr只需要一个jar文件,所以我不认为有任何空间在数据节点上安装软件。

ldxq2e6h

ldxq2e6h1#

jar中的可执行文件是一个资源,您可以通过流访问它,并将可执行文件扩展到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();

相关问题