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?
5
A
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.
3
C'è il metodo Runtime.getRuntime().addShutdownHook()
che è possibile esplorare.
Problemi correlati
- 1. Endianness della macchina virtuale Java
- 2. Tempo di inattività della macchina
- 3. Mac OS X: modifica del layout della tastiera di intercettazione
- 4. Suoni della macchina in C#
- 5. Struts 2 File Upload Problemi di intercettazione della configurazione
- 6. Intercettazione della richiesta di origine video HTML5 in Android WebView
- 7. Chiamata di destinazione della formica
- 8. creare un oggetto prima della chiamata di super in java
- 9. chiamata della classe base
- 10. Metodo di intercettazione non chiamato con intercettazione
- 11. Python Ottenere l'indirizzo IP della LAN della macchina su Ubuntu
- 12. Java: utilizzare le annotazioni e i metodi di intercettazione?
- 13. Ottenimento e intercettazione della risposta HTTP utilizzando Mechanize in Python
- 14. Chiamata di metodo di intercettazione in Objective-C
- 15. Arresto macchina Windows dal terminale linux
- 16. Significato della macchina in attesa in autosys
- 17. Progettazione dello stato della macchina Python
- 18. Come ssh nell'istanza VirtualBox della macchina docker?
- 19. dimensioni della macchina 64 o 32 bit
- 20. Come trovare il codice sorgente della funzione nativa chiamata java
- 21. Uso della chiamata sysfs_notify Linux
- 22. Ritardo di profiling PHP prima della funzione di arresto
- 23. Scala - sintassi della chiamata di metodo
- 24. Overhead della chiamata di funzione DLL
- 25. Funzione di arresto Java non in esecuzione
- 26. Riconoscimento di un arresto anomalo della memoria (IOS)
- 27. Spring: intercettazione della creazione di bean e iniezione di proxy personalizzato
- 28. Intercettazione e riprovare la chiamata tramite OkHttp Interceptors
- 29. Come sono le prestazioni correnti della macchina virtuale Mono?
- 30. get SID della macchina (incluso il controller di dominio primario)
Urrà! Mi hai davvero aiutato! – Rogach