Я думаю, что Вы делаете, подвергается та же политика источника . Это должно быть причиной, почему Вы добираетесь , разрешение отклонило ошибки типа .
Вот довольно хорошее руководство по обработке сигналов в Java . Он также охватывает случаи выключения и завершения, включая Ctrl-C.
Конкретный вызов, который вам нужен, находится в среде выполнения, addShutdownHook .
Есть еще определенные случаи, с которыми вы не можете справиться ... обычно существует какой-нибудь способ для ОС просто убить приложение, не давая ему возможности спастись. С помощью этого механизма невозможно охватить все дела. Процитируем JavaDoc
. В редких случаях виртуальная машина может прекратить работу, то есть прекратить работу без полного завершения работы. Это происходит, когда виртуальная машина завершается извне, например, сигналом SIGKILL в Unix или вызовом TerminateProcess в Microsoft Windows. Виртуальная машина также может завершить работу, если собственный метод не сработает, например, повреждение внутренних структур данных или попытка доступа к несуществующей памяти. Если виртуальная машина прерывается, то нельзя гарантировать, будут ли запущены какие-либо обработчики завершения работы.