方法一
System.exit(0); //正常终止程序
方法二
跑到此方法不想让钩子继续运行,想直接终止程序。(相当于linux的 Ctrl + C)
Linux下signal信号汇总
private static void closeProgram() {
Signal signal = new Signal("INT"); //-2
Signal.handle(signal, new SignalHandler() {
@Override
public void handle(Signal signal) {
log.info("程序结束");
System.exit(0);
}
});
}
方法三
跑到此方法想让程序正常执行完,再终止程序。(相当于linux的 kill -9)
Runtime.getRuntime().addShutdownHook(new Thread(){
@Override
public void run() {
//在JVM关闭之前执行收尾工作
//注意事项:
//1.在这里执行的动作不能耗时太久
//2.不能在这里再执行注册,移除关闭钩子的操作
//3.不能在这里调用System.exit()
}
});