2012-12-06 182 views
1

我想寫一個聊天機器人。我仍然處於起步階段,但我確實有一個問題。Java,運行外部程序

Process proc = Runtime.getRuntime().exec("notepad.exe"); 

這實際上使得它不可能退出我的程序,除非我退出記事本。在這個記事本結束之前是否有可能退出Java程序?

+0

可能重複[什麼是java中的守護進程線程](http://stackoverflow.com/questions/2213340/what-is-daemon-thread-in-java) –

+0

是的,但它是平臺特定的,非常混亂實現。 – MadProgrammer

回答

1

您可以通過程序中的單獨線程運行外部程序,並在主線程中繼續執行程序邏輯,即多線程應用程序是一個很好的解決方案。

+0

即使程序在另一個線程中運行,我也無法退出程序。這是否意味着,如果我想運行一個大型的記憶食物程序,比如Skyrim這樣的遊戲,它就在Java應用程序中運行,從而終止Java-app進程,意味着終止外部程序? –

0

首先摧毀子:

Process proc = Runtime.getRuntime().exec("notepad.exe"); 
proc.destroy(); 

如果這不起作用,得到進程的進程ID和運行不同的子進程與System.exit(0);或正常運行kill <pid>

然後退出的Java。