2016-09-30 96 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