2013-04-09 78 views
3

簡而言之,我需要能夠將編譯好的可執行文件粘貼到Java jar文件中,然後才能從Java運行它(可能通過ProcessBuilder)。是否有可能激發一個可執行文件,以便它可以從Java運行?

爲什麼是我想使用ImageMagick可執行文件的Java包裝器作爲圖像處理Elastic Map Reduce作業的組件。 EMR只希望獲得一個jar文件,所以我認爲沒有任何空間可以在啓動的數據節點上安裝軟件。

+1

使用ZIP流,將此可執行文件打包到您的jar文件中,然後在運行時將其解壓縮到臨時文件夾並運行。 – 2013-04-09 18:57:11

回答

3

進入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(); 
+1

哇。這非常有幫助,謝謝! – JnBrymn 2013-04-09 19:27:52

相關問題