2010-12-30 8 views
5

C'è un modo per ottenere la notifica di arresto JVM o chiamata System.exit prima dello spegnimento effettivo? Voglio questo, quindi la mia applicazione sarà in grado di fare un'uscita pulita. Mi rendo conto che una cosa del genere è improbabile che esista, ma comunque, forse c'è qualcosa di simile?Intercettazione della chiamata di arresto della macchina java?

risposta

11

Dai un'occhiata alla Runtime.addShutdownHook

Dalla documentazione API:

La macchina virtuale Java si spegne in risposta a due tipi di eventi:

  • Il programma si chiude normalmente, quando l'ultimo non daemon thread termina o quando l'uscita (equivalentemente, System.exit) viene richiamato il metodo, o
  • la macchina virtuale viene terminata in risposta ad un interrupt utente, ad esempio digitando^C, o un sistema evento di livello globale, come la disconnessione dell'utente o l'arresto del sistema.

Utilizzando Runtime.addShutdownHook è possibile eseguire il codice in questi casi.

+0

Urrà! Mi hai davvero aiutato! – Rogach

3

C'è il metodo Runtime.getRuntime().addShutdownHook() che è possibile esplorare.

Problemi correlati