Перехватывает вызов выключения Java-машины?

Есть ли способ получить уведомление о завершении работы JVM или вызове System.exit до фактического завершения работы? Я хочу этого, чтобы мое приложение могло сделать чистый выход. Я понимаю, что такая вещь вряд ли существует, но все же, может быть, есть что-то подобное?

2 ответа

Решение

Посмотрите на Runtime.addShutdownHook

Из документации API:

Виртуальная машина Java отключается в ответ на два вида событий:

  • Программа завершается нормально, когда завершается последний поток, не являющийся демоном, или когда вызывается метод exit (эквивалентно System.exit), или
  • Виртуальная машина прерывается в ответ на пользовательское прерывание, такое как ввод ^C, или общесистемное событие, такое как выход пользователя из системы или завершение работы системы.

С помощью Runtime.addShutdownHook Вы можете запустить код в этих случаях.

Там в Runtime.getRuntime().addShutdownHook() метод, который вы могли бы изучить.

Другие вопросы по тегам