2015-04-27 28 views
0

我正在開發一個具有完整java代碼的項目& SQL,其中應用程序從shell腳本啓動。 當用戶按Ctrl^C時,我想執行一些清理任務(關閉事務n記錄突發消息)。僅在ctrl^C(Runtime.getRuntime()。addShutdownHook(Thead t))上執行任務

我試圖通過 調用Runtime.getRuntime()。addShutdownHook(線程)

但它會執行每次我的應用程序是時候退出VM &我從來不知道將關停任務就是命令殺/執行成功。

我正在尋找一些指針來實現這一點。

  • 在此先感謝.. !!!
+0

http://stackoverflow.com/questions/1486679/determine-exit-status-within-the-java-shutdown-hook-thread可能有所幫助。 – manouti

回答

0

如果您重寫SecurityManager checkExit(int status)方法,它會起作用。 但這不是處理這類事件的推薦方式。 如果我的代碼體驗ctrl + c,我通常喜歡在下次看到不一致的時候清理乾淨。這通常不是一個壞主意。

+0

應用程序數據庫可以用在其他地方,我會得到陳舊的數據(在我的應用程序的角度來看)。我試圖避免這種情況,並記錄下這些對象的消息。所以在退出時,我應該完成這些任務。 –

+0

@anji_rajesh聽起來像你必須確保你的數據庫操作更原子。而不是可能導致陳舊數據的多個步驟。 – BufBills

相關問題