3
簡而言之,我需要能夠將編譯好的可執行文件粘貼到Java jar文件中,然後才能從Java運行它(可能通過ProcessBuilder
)。是否有可能激發一個可執行文件,以便它可以從Java運行?
爲什麼是我想使用ImageMagick可執行文件的Java包裝器作爲圖像處理Elastic Map Reduce作業的組件。 EMR只希望獲得一個jar文件,所以我認爲沒有任何空間可以在啓動的數據節點上安裝軟件。
簡而言之,我需要能夠將編譯好的可執行文件粘貼到Java jar文件中,然後才能從Java運行它(可能通過ProcessBuilder
)。是否有可能激發一個可執行文件,以便它可以從Java運行?
爲什麼是我想使用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();
哇。這非常有幫助,謝謝! – JnBrymn 2013-04-09 19:27:52
使用ZIP流,將此可執行文件打包到您的jar文件中,然後在運行時將其解壓縮到臨時文件夾並運行。 – 2013-04-09 18:57:11