文件(exe)位於JAR文件內部,該文件使用Launch4j打包到EXE中。如何從Java中包裝的Jar中提取文件
我的可執行文件(包裹在EXE JAR文件):
myProgram.exe
可執行文件的位置
myProgram.exe/program.jar/resources/sub-program.exe
如何運行(或解壓到臨時目錄)子的Program.exe和運行它的參數? sub-program.exe -f -q
如果子方案是臨時文件,我可以運行它:
String exeLocation = System.getProperty("java.io.tmpdir") + "sub-program.exe";
String params = " -f -q";
ProcessBuilder process = new ProcessBuilder("cmd.exe", "/c", exeLocation + params);
如何提取包裹Jar文件的文件?我想沒有辦法在包裝的Jar文件中運行它。
不錯的主意,你可以發佈例子嗎?我已經通過真正有趣的方式從sub-program.exe獲取字節,然後使用FOS編寫它們,但我想有更好的辦法比這個更好。 –
這是標準方法。可能有一些utils可以爲你節省一些樣板代碼,比如使用Apache Commons IO,IOUtils.copy(inputStreeam,yourFos)' –
我已經使它工作了,謝謝。 –