Gibt es eine Möglichkeit, vor dem tatsächlichen Herunterfahren über das Herunterfahren von JVM oder den Aufruf von System.exit informiert zu werden? Ich möchte das, damit meine Anwendung einen sauberen Ausgang machen kann. Ich realisiere, dass so etwas unwahrscheinlich ist, aber trotzdem, vielleicht gibt es so etwas?Abfangen von Java-Maschine Herunterfahren?
5
A
Antwort
11
Werfen Sie einen Blick auf Runtime.addShutdownHook
Aus der API-Dokumentation:
Die virtuelle Java-Maschine schaltet in Reaktion auf zwei Arten von Veranstaltungen nach unten:
- Das Programm tritt normalerweise, wenn die letzten Nicht-Daemon-Thread wird beendet oder wenn die Methode exit (äquivalent System.exit) aufgerufen wird oder
- Die virtuelle Maschine wird als Reaktion auf einen Benutzer-Interrupt beendet, z. B. durch Eingabe von^C oder eines Systems -Wide-Ereignis, wie z. B. Benutzerabmeldung oder Herunterfahren des Systems.
Mit Runtime.addShutdownHook
können Sie Code in diesen Fällen ausführen.
3
Es gibt Runtime.getRuntime().addShutdownHook()
Methode, die Sie vielleicht erkunden möchten.
Hurra! Du hast mir wirklich geholfen! – Rogach