2015-11-06 165 views
-2

我正在製作一個程序(3D Minesweeper),我在檢測結果時遇到問題。我嘗試單獨的線程來等待結果,但它不起作用(只是沒有)。所以我認爲最簡單的方法是有兩個獨立的程序(不是問題),其中一個運行另一個程序(帶有args,1.problem),並獲取由System.exit();(2.problem)返回的值。 我發現了一些解決第一個問題的例子,但不是第二個。有沒有適當的方法來做到這一點,或者我必須將結果寫入文件或其他東西? 順便說一句,隨時糾正語法,我只是學習XD。通過Java程序運行Java程序

+0

請輸入一些代碼。 – Sneh

+2

另外,定義「不起作用」。正在運行的線程在上次我使用Java工作時已經檢查:) –

+1

您的第一個解決方案(使用線程)幾乎肯定會最終變得更簡單,更快速並且更易於維護,而不是在您啓動另一個整個流程時做一些瘋狂的事情。顯示你的代碼,我們會幫助你。 –

回答

0

如果使用System.exec()運行程序,然後看看waitFor()Process

Process p = Runtime.getRuntime().exec("cmd /C dir"); 
int rc = p.waitFor(); 
System.out.println ("Exit code is " + rc); 

你也可以看過程的exitValue()的返回值,但你必須要確保程序已經運行完畢,然後纔可靠。

Process p = Runtime.getRuntime().exec("cmd /C dir"); 
p.waitFor(); // make sure we run to completion 
System.out.println ("Exit code is " + p.exitValue()); 
+0

謝謝,這正是我所需要的,當我得到15代表你有一個upvote XD –

+0

我無法弄清楚正確的命令,文件是在C:\ Data \ Patrik \ Documents \ Eclipse \ Minesweeper3D中命名爲GameWindow.jar –

0

從第二個啓動第一個程序並獲取退出值。

Process myProcess = Runtime.getRuntime()。exec(command);

int exitValue = myProcess.exitValue();