处理Java虚拟机中的信号

Ben*_*gel 12 java posix jvm signals process

是否可以在Java虚拟机中处理POSIX信号?

至少SIGINTSIGKILL应该是完全独立于平台的.

Wil*_*ill 12

JVM自己响应信号.有些会导致JVM正常关闭,包括运行关闭挂钩.其他信号将导致JVM在不运行关闭挂钩的情况下中止.

使用Runtime.addShutdownHook(Thread)添加关闭挂钩.

我不认为JDK提供了一种在Java应用程序中处理信号的官方方法.但是,我确实找到了这篇IBM文章,该文章描述了使用一些未记录的sun.misc.Signal类来做到这一点.这篇文章的历史可以追溯到2002年,使用的是JDK 1.3.1,但我确认sun.misc.Signal该类仍然存在于JDK 1.6.0中.