Не существует (стандартного) способа выяснить, когда ваше приложение уничтожается диспетчером задач с Java.
Обычный подход состоит в том, чтобы иметь второе приложение, которое запускает основное приложение как дочерний процесс (используйте ProcessBuilder
). Оболочка заметит, когда ребенок умрет. По всем обычным причинам прекращения действия установите код выхода через System.exit()
в своем основном приложении. В вашей обертке проверьте код выхода. Если это не тот, который вы явно указали, то кто-то убил приложение или оно зависло из-за ошибки ВМ.
Чтобы различать эти два, проверьте выходные данные дочернего приложения и найдите дампы аварийного отказа виртуальной машины в текущем каталоге (что бы это ни было для вашего приложения; обычно это каталог, в котором было установлено ваше приложение).