2010-12-30 12 views
5

Czy istnieje sposób na uzyskanie powiadomienia o zamknięciu JVM lub wywołaniu System.exit przed faktycznym zamknięciem? Chcę tego, więc moja aplikacja będzie w stanie zrobić czyste wyjście. Zdaję sobie sprawę, że takie rzeczy raczej nie istnieją, ale może jest coś takiego?Przechwytywanie przechwytywania połączenia z maszyną Java?

Odpowiedz

11

Wystarczy popatrzeć na Runtime.addShutdownHook

Od docs API:

Maszyna wirtualna Java zamyka w odpowiedzi na dwa rodzaje zdarzeń:

  • Program zakończy się normalnie, gdy ostatni wątek nie będący demonem zostanie zamknięty lub gdy zostanie wywołana metoda exit (równoważnie metoda System.exit) lub
  • Maszyna wirtualna zostanie zakończona w odpowiedzi na przerwanie przez użytkownika, na przykład przez wpisanie^C lub przez system dla całego zdarzenia, na przykład wylogowanie użytkownika lub zamknięcie systemu.

Za pomocą Runtime.addShutdownHook można uruchomić kod w tych przypadkach.

+0

Brawo! Naprawdę mi pomogłeś! – Rogach

3

Istnieje metoda, którą można zbadać.

Powiązane problemy