ProcessBuilder在可执行jar中的jar包作为资源

时间:2016-09-30 10:02:42

标签: java jar executable-jar

我的java使用ProcessBuilder使用我在资源中添加的other jar来运行多个命令。

它在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

1 个答案:

答案 0 :(得分:1)

Java命令可执行文件无法从jar文件中读取jar文件。它只能从文件系统中读取。您必须将该jar文件的内容写入临时文件,并将该路径名传递给ProcessBuilder