2012-02-16 83 views
3

這真的很奇怪,吃掉我的大腦。我正在使用Runtime.exec啓動另一個jvm,即使沒有啓動,它也會悄然退出。Runtime.exec失敗,沒有任何異常/警告/錯誤代碼

 p = Runtime.getRuntime().exec("java classname", null, new File(workdir)); 

該過程立即退出。我簡要地看到taskmanager中的進程,並且它關閉。我甚至試圖捕獲輸出。

 BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); 
     String errString = "Error Details:\n"; 
     String line; 

     while((line = br.readLine()) != null) 
      errString = errString.concat(line).concat("\n"); 

在第一次readline調用時該行爲null。我知道我可以使用ProcessBuilder,但是我在java 1.4上,而我不能爲1.5。請幫忙。

感謝,Bikash

+0

嘗試閱讀錯誤流來查看發生了什麼。 – MByD 2012-02-16 14:40:27

+0

嘗試使用getErrorStream – 2012-02-16 14:46:13

+0

exec()的第一個參數是進程可執行文件,即'java'或'java.exe',而不是要執行'main()'的Java類的名稱。 – hmjd 2012-02-16 14:47:24

回答

1

嘗試把命令在命令行陣:

Runtime.getRuntime().exec(new String[] {"java", "classname"}, null, new File(workdir)); 
1

我總是指向this site當人們具有的Runtime.exec()的問題

相關問題