JVM会自行响应信号。一些信号会使JVM正常关闭,并运行关闭挂钩。其他信号会导致JVM在不运行关闭挂钩的情况下中止。
可以使用Runtime.addShutdownHook(Thread)添加关闭挂钩。
我认为JDK没有提供官方方式来处理Java应用程序中的信号。然而,我找到了这篇IBM文章,其中描述了如何使用一些未公开的sun.misc.Signal
类来实现此功能。该文章的日期为2002年,使用的是JDK 1.3.1,但我已经确认,在JDK 1.6.0中仍存在sun.misc.Signal
类。