2016-12-25 3 views
0

Java 응용 프로그램에서 외부 jar을 실행하려고합니다. .jar 파일은 java 패키지 ("gui")에 있습니다. 나는 시도 :ProcessBuilder : java 패키지의 .jar 시작

  String filepath = this.getClass().getResource("ServerRSS.jar").getPath(); 
      ProcessBuilder pb = new ProcessBuilder("java", filepath); 

에서 System.out.println (파일 경로); 결과는 다음과 같습니다.

/C:/Users/hox/workspace/PraktikumProg/bin/gui/ServerRSS.jar 

프로그램이 시작되지 않습니다. 문제는 C :가되기 전에 슬래시가 될 수 있습니까?

편집 : 이 솔루션은이었다

URL filepath = this.getClass().getResource("ServerRSS.jar"); 
ProcessBuilder pb; 
pb = new ProcessBuilder("java", "-jar", new File(filepath.toURI()).toString()); 
Process p = pb.start(); 
+0

제 대답이 향상되었습니다. 도움이된다면 약간의 피드백을주십시오! – GhostCat

답변

1

먼저 명령은 단순히 명령 행에 ... 작업을 진행.

그런 다음 ProcessBuilder를 사용하여 Java 내에서 실행 해보십시오.

간단히 대답하면 -jar을 사용하면 java를 호출 할 수 있습니다.

java someJar.jar 

이 작동하지 않습니다!

네, 그 슬래시는 큰 문제입니다. 당신은 단순히 거기에 완전히 올바른 파일 경로를 원할뿐입니다.

마지막으로 어떤 클래스에서 main 메소드를 실행하기 위해 새 JVM을 시작 하시겠습니까? 두 번째 JVM을 사용하는 데 따른 추가 성능 및 복잡성 비용없이 현재 JVM에서 수행 할 수 있습니다.

관련 문제