2016-09-30 116 views
1

我的java使用ProcessBuilder來運行我已經添加到資源中的other jar的幾個命令。作爲資源的可執行jar中的jar包上的ProcessBuilder作爲資源

它工作正常,在Eclipse中,但一旦我把它出口到executable jar,這是行不通的:

//Defs Class has this line 
public final static String APKTOOLS_JAR_PATH = Defs.class.getResource("/apktool.jar").getPath(); 

ProcessBuilder pb = new ProcessBuilder("java", "-jar", Defs.APKTOOLS_JAR_PATH, "d", apkPath, "-o", decodePath, "-f"); 
pb.redirectError(Redirect.INHERIT); 
Process p = pb.start(); 

我回去:

Error: Unable to access jarfile apktool.jar 
+0

你有什麼錯誤嗎? –

+0

「它不起作用」。請[編輯]你的問題來具體描述它是如何失敗的。它是否產生任何錯誤信息?他們說什麼? – Kenster

+0

@Rishaldevsingh我有一個補充的錯誤描述 –

回答

1

Java命令可執行文件不能讀取jar來自jar文件的文件。它只能從文件系統讀取。您必須將該jar文件的內容寫入臨時文件並將該路徑名傳遞給ProcessBuilder