我正在嘗試製作一個Java程序,它將運行其他幾個不相關的Java程序,特別是一個Minecraft服務器。 目前,我正在努力解決如何優雅地結束java.lang.Process。如何優雅地退出Java中的進程?
這是我的產卵的程序代碼: http://dl.dropbox.com/u/26746878/SpawnerSource/Main.java.txt
這是被催生的程序代碼: http://dl.dropbox.com/u/26746878/SpawnerSource/Tester.java.txt
我做的是我的運行程序產卵。然後,幾秒鐘後,我用Ctrl-C終止它。 我想看到的是我的節目輸出「關閉」,然後是「結束」。我也想看到一個文件'test.txt'。 我實際看到的不僅是「關閉」,沒有「結束」也不是「test.txt的」
我相信問題是Process.destroy()被強制結束進程沒有讓關閉掛鉤運行。
是否有替代Process.destroy()會優雅地退出進程(即:如果我按Ctrl-C)?
有特定理由使用Java來執行此任務,通過說一個shell腳本/批處理文件? –
@MarkPeters我想最終有此程序監聽特定的端口,並有一個PHP腳本控制並且讓程序在生成的進程上執行命令,我寧願使用Java來完成此任務。 – RunasSudo
可能重複的[如何優雅地停止java進程?](http://stackoverflow.com/questions/191215/how-to-stop-java-process-gracefully) – adatapost