2016-09-30 2 views
1

My java는 ProcessBuilder을 사용하여 리소스에 추가 한 other jar을 사용하여 여러 명령을 실행합니다.리소스로 실행 jar의 jar 패키지에있는 ProcessBuilder

그것은 이클립스에서 잘 작동하지만 내가 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

자바 명령 실행이 항아리를 읽을 수 없습니다 jar 파일의 파일. 파일 시스템에서만 읽을 수 있습니다. 해당 jar 파일의 내용을 임시 파일에 작성하고 해당 경로 이름을 ProcessBuilder에 전달해야합니다.