为了账号安全,请及时绑定邮箱和手机立即绑定

如何在CLI应用程序中“拦截”Ctrl + C?

如何在CLI应用程序中“拦截”Ctrl + C?

犯罪嫌疑人X 2019-08-27 11:13:35
如何在CLI应用程序中“拦截”Ctrl + C?如何在CLI(命令行界面)Java应用程序中拦截 Ctrl + C(通常会终止进程)?是否存在多平台解决方案(Linux,Solaris,Windows)?我使用Console的readLine(),但如果有必要,我会用一些其他的方法来读取从标准输入的字符。
查看完整描述

3 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() { /*
       my shutdown code here
    */ }
 });

这应该能够拦截信号,但仅作为JVM完全关闭之前的中间步骤,因此它可能不是您正在寻找的。

您需要使用a SignalHandlersun.misc.SignalHandler)来拦截SIGINTCtrlC(在Unix和Windows上)触发的信号。
请参阅此文章(pdf,第8页和第9页)。


查看完整回答
反对 回复 2019-08-27
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

我假设你想优雅地关机,而不是短路关机过程。如果我的假设是正确的,那么你应该看看Shutdown Hooks


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 504 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信