Нет.
Хук отключения будет реагировать на Ctrl + C, нормальное закрытие, выход пользователя из системы и нормальное завершение работы системы (которые запрашивают постепенное отключение всех приложений).
ОднакоЕсли кто-то принудительно закрывает приложение, предполагается, что это именно то, что вы действительно хотите - немедленное прекращение без дополнительного уведомления.Этот вопрос задавался много раз, и его сбивает с толку поведение многих приложений, которые, когда их просят принудительно закрыть, на самом деле требуют много времени для окончательного завершения.Это связано с тем, что в попытках ОС освободить все ресурсы некоторые ресурсы (особенно определенные ресурсы ввода-вывода и / или файлов) не освобождаются немедленно.
При тестировании приложения, котороезапускается и предназначен для запуска до постепенного завершения работы (например, серверного программного обеспечения), вы должны запустить его в консоли / командной строке и нажать Ctrl + C, чтобы остановить программу (которая запустит ловушку завершения), а не использовать задачуМенеджер, или KILL -9.
Более того, Java ничего не может с этим поделать, если захочет.Принудительное закрытие происходит на уровне операционной системы, после чего он освобождает память, файл и дескрипторы ввода-вывода, которые используются, и т. Д. Java не (и не любая другая программа) не контролирует принудительное закрытие.На данный момент ОС берет на себя ответственность.