简单地说,我需要能够将已编译的可执行文件粘贴到javajar文件中,然后能够从java运行它(可能是通过 ProcessBuilder ).原因是,我想在imagemagick可执行文件周围使用java Package 器作为图像处理弹性map reduce作业的组件。emr只需要一个jar文件,所以我不认为有任何空间在数据节点上安装软件。
ProcessBuilder
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();
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();
1条答案
按热度按时间ldxq2e6h1#
jar中的可执行文件是一个资源,您可以通过流访问它,并将可执行文件扩展到temp目录,然后使用processbuilder执行它。