如何让Java的手柄系统中断如Ctrl + C(How To Let Java Handle Sys

2019-09-22 04:45发布

我有这将创建一个锁文件,以确保没有其他执行在同一时间,因为它运行Java程序。 如果程序运行时,它创建的文件,并在退出时,成功或通过一个例外,该文件将被删除。 但是,如果用户点击Ctrl + C键,关闭终端,或以某种其他方式中断执行,该文件没有被删除。 有什么方法来检测该中断命令,并确保该文件在这种情况下删除呢?

Answer 1:

你可能要考虑关闭挂钩 。

此外,这可能是一个重复的或本从一天或两天以前以前的SO问题的近乎重复的:

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



Answer 2:

对付这种情况的唯一的好办法就是时间戳日志文件,并用新的时间戳更新日志文件每隔几秒钟。 File.deleteOnExit会有帮助,但没有一种方法是万无一失的(当有人只是拉电源线会发生什么?)。

如果你写一个时间戳,那么你可以检查有效的时间戳(最近写),并覆盖日志文件,如果实在是太糟糕过时。 这样一个陈旧的锁文件将不会在用户的方式获得。



文章来源: How To Let Java Handle System Interrupts Like Ctrl+C