我如何在CLI(命令行界面)Java应用程序中拦截 Ctrl + C(通常会终止进程)?
是否存在多平台解决方案(Linux,Solaris,Windows)?
我使用Console
的是readLine()
,但如果有必要,我可以使用其他方法从标准输入中读取字符。
发布于 2018-05-03 14:30:47
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() { /*
my shutdown code here
*/ }
});
这应该能够截获信号,但只能作为JVM完全关闭之前的一个中间步骤,因此它可能不是您正在关注的内容。
需要使用SignalHandler
(sun.misc.SignalHandler
)来截取SIGINT
由Ctrl+ C(在Unix以及Windows上)触发的信号。
发布于 2018-05-03 15:21:33
我假设你想要正常关机,而不是短路关机过程。如果我的假设是正确的,那么你应该看看Shutdown Hooks。
https://stackoverflow.com/questions/-100008341
复制相似问题