在Java程序中可以通过添加关闭钩子,实现在程序退出时关闭资源、平滑退出的功能。 
 使用Runtime.addShutdownHook(Thread hook)方法,可以注册一个JVM关闭的钩子,这个钩子可
这通常用于确保在应用程序退出时能够执行一些清理工作,比如关闭文件流、释放资源、断开数据库连接等。
要使用ShutdownHook,你需要实现一个Runnable接口,并将其添加到Runtime.getRuntime()的钩子列表中。以下是如何使用ShutdownHook的步骤和示例:
步骤:
-  创建一个Runnable实现类: 创建一个类实现Runnable接口,并在run方法中定义当ShutdownHook被触发时要执行的代码。 
-  添加ShutdownHook到Runtime: 使用 Runtime.getRuntime().addShutdownHook方法将你的Runnable实例添加到JVM的ShutdownHook列表中。
-  移除ShutdownHook(可选): 如果你需要在某个时刻移除ShutdownHook,可以使用 Runtime.getRuntime().removeShutdownHook方法。
代码
package com.yang.SpringTest.java;/*** <p>KillJavaTest</p>** @author By: chengxuyuanshitang* Package com.yang.SpringTest.java* Ceate Time 2024-04-13 09:49*/
public class ShutdownHookTest {public static void main (String[] args) {boolean flag = true;Runtime.getRuntime ().addShutdownHook (new Thread (new Runnable () {public void run () {System.out.println ("Run shutdown hook now.");}}, "ShutdownHookTest"));while (flag) {}System.out.println ("程序退出");}
}在linux执行运行
javac ShutdownHookTest.java java ShutdownHookTest

再开一个新的命令窗口
jps

kill -15 3877
查看java运行的窗口输出

为什么要用kill -15呢,看下面的文章
【Linux】kill 命令使用-CSDN博客
