如何优雅地停止java程序

方法一

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()
    }
});

如何优雅地停止Java进程
如何优雅地停止java程序_第1张图片

你可能感兴趣的:(java,java,jvm,开发语言)