2012-03-28 490 views
0

我有一個遊戲機器人,它通過控制檯運行。我不認爲我會爲它編寫一個gui,但我希望有可能在沒有CTRL + C的情況下關閉程序,因爲這隻會中斷我的程序,而不是正確清理代碼並確保它們沒有泄漏。Java控制檯應用程序清理

我應該使用索姆類鍵綁定還是我必須做一個GUI? 或者我該怎麼辦?

+1

在這裏回答? - http://stackoverflow.com/questions/1216172/java-how-could-i-intercept-ctrlc-in-a-cli-application – 2012-03-28 21:10:02

回答

5

我認爲這就是shutdown hook的用途。

Runtime.getRuntime().addShutdownHook(new Thread() { 
    @Override 
    public void run() { 
     System.out.println("Application shutdown"); 
    } 
}); 
+0

甜。不知道這件事。謝謝! ;) – 2012-03-28 21:22:52

+0

任何想法如何通過eclipse終止應用程序(在開發過程中)如何工作? – Michael 2016-04-11 08:11:33

1

David的回答很好。它可能適合你。

我通常不希望故意中止一個進程,然後檢測到它正在下降以避免懸掛操作。所以我可能會更喜歡:

您是否在處理控制檯輸入時輸入?如果是這樣,你可以只需要一個控制檯命令來告訴應用程序關閉,並在無論你的過程是處理控制檯輸入時檢查它。或者,如果你的意思是應用程序只是在沒有用戶輸入的情況下運行,那麼你可以定期檢查控制檯緩衝區是否爲空(Console.reader()。ready()),如果沒有,請閱讀控制檯並查看是否退出命令。