当有人杀死java.exe进程时,我怎么能抓住时机?

Mik*_*ail 1 java

控制台java应用程序 有人通过任务管理器杀死java.exe进程.在申请终止之前,我如何写入记录某些信息?

Thread.currentThread().setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
    public void uncaughtException(Thread t, Throwable e) { ..... }
}); 
Run Code Online (Sandbox Code Playgroud)

要么

Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() { ..... }
});
Run Code Online (Sandbox Code Playgroud)

不要在这种情况下执行

Tho*_*ung 6

这是不可能的.关机挂钩只会在有序关机时执行:

在极少数情况下,虚拟机可能会中止,即停止运行而不会干净地关闭.当虚拟机在外部终止时会发生这种情况,例如Unix上的SIGKILL信号或Microsoft Windows上的TerminateProcess调用.

您可以发送另一个触发有序关机的信号SIGINT.在应用程序没有响应之后,杀死应用程序应该是最后的手段.