2010-12-30 6 views
5

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?

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.

+0

Hurra! Du hast mir wirklich geholfen! – Rogach

3

Es gibt Runtime.getRuntime().addShutdownHook() Methode, die Sie vielleicht erkunden möchten.