我的java使用ProcessBuilder使用我在资源中添加的其他jar运行几个命令。
它在Eclipse中工作正常,但是一旦我将它导出到可执行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)
如果你的apk类中的apktool.jar正在运行
public final static String APKTOOLS_JAR_PATH = Defs.class.getResource("apktool.jar").getPath();
从相对路径获取jar
但是如果你想从绝对路径加载斜杠/应该这样做
public final static String APKTOOLS_JAR_PATH = Defs.class.getResource("/home/user/myjars/apktool.jar").getPath();
其中前导斜杠被视为绝对路径