如何在 CLI 应用程序中“拦截”Ctrl+C?
2022-08-31 11:52:19
如何在CLI(命令行界面)Java应用程序中拦截+(通常会杀死进程)?CtrlC
是否存在多平台解决方案(Linux,Solaris,Windows)?
我正在使用 's ,但如有必要,我可以使用其他方法从标准输入中读取字符。Console
readLine()
如何在CLI(命令行界面)Java应用程序中拦截+(通常会杀死进程)?CtrlC
是否存在多平台解决方案(Linux,Solaris,Windows)?
我正在使用 's ,但如有必要,我可以使用其他方法从标准输入中读取字符。Console
readLine()
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() { /*
my shutdown code here
*/ }
});
这应该能够拦截信号,但只是作为JVM完全关闭之前的中间步骤,所以它可能不是你所照顾的。
您需要使用 SignalHandler
() 来拦截由 + 触发的信号(在 Unix 和 Windows 上)。
请参阅此文章(pdf,第 8 页和第 9 页)。sun.misc.SignalHandler
SIGINT
CtrlC