2016-12-25 463 views
0

我嘗試在我的Java應用程序中執行外部jar。 .jar在我的java-package(「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內部運行它。

簡單的回答可能是:在調用java時使用-jar

java someJar.jar 

不起作用!

是的,這個斜槓很重要。你只需要一個完全正確的文件路徑。

最後:你真的確定要啓動一個新的JVM,以便在某個類中運行主要方法嗎?您會發現,您可以在當前的JVM中執行此操作,而無需使用第二個JVM的額外性能和複雜性成本!