Обрабатывать сигналы в виртуальной машине Java
2 ответа
Решение
JVM реагирует на сигналы самостоятельно. Некоторые из них приведут к корректному завершению работы JVM, что включает в себя запуск ловушек отключения. Другие сигналы приведут к прерыванию работы JVM без запуска отключений.
Хуки отключения добавляются с помощью Runtime.addShutdownHook (Thread).
Я не думаю, что JDK предоставляет официальный способ обработки сигналов в вашем Java-приложении. Тем не менее, я нашел эту статью IBM, которая описывает использование некоторых недокументированных sun.misc.Signal
класс, чтобы сделать именно это. Статья датируется 2002 годом и использует JDK 1.3.1, но я подтвердил, что sun.misc.Signal
класс все еще существует в JDK 1.6.0.