正如主题所述,有没有一种方法可以禁用CTRL-C(和其他信号),使它们不终止应用程序?
编辑2: 这也许可以帮到你: 在Java中捕获SIGINT信号
Ctrl-C和其他命令向你的程序发送"信号",如果你编写代码来"捕获"这些信号,你就可以改变你的程序如何响应。理想情况下,你会希望ctrl-c终止程序,因为这是用户所期望的,所以请记住,如果你改变了程序的响应,你应该告诉用户为什么它没有终止。
编辑3: 如果你无法自己捕获和解除事件,那么Cat的建议是你的下一个最佳选择。页面中间有一个在linux/Windows中如何做的例子 - 它不是可移植的。 基本上,你的程序将处理键盘事件,而不是控制台将键盘事件发送给它。这意味着命令行被绕过,不能读取ctrl-c调用。我会写代码,但我现在在工作中;周三对我来说是漫长的一天。如果你到我回家之前还没有搞定,我会考虑写一些例子。
如果您启动一个KeyListener来处理按下ctrl+C的事件,我认为它应该要么否定“自然”响应,要么调用您设计的子程序。
kill -9
;) - Peter Lawrey