如何在CLI(命令行界面)Java应用程序中截获 Ctrl + C(通常会杀死进程)?
Ctrl + C
是否存在多平台解决方案(Linux,Solaris,Windows)?
我使用Console的是readLine(),但是如有必要,我可以使用其他方法从标准输入中读取字符。
Console
readLine()
Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { /* my shutdown code here */ } });
这应该能够截获信号,但是仅作为JVM完全关闭自身之前的中间步骤,因此它可能不是你要注意的。
你需要使用SignalHandler(sun.misc.SignalHandler)截获SIGINT由Ctrl+ 触发的信号C(在Unix和Windows上)。
SignalHandler(sun.misc.SignalHandler)
SIGINT由Ctrl+