我目前有一个 tomcat web 应用程序,需要在 JVM 关闭时删除文件。我创建了一个自定义 ContextLoaderListener 来处理 contextDestroyed 事件。在这里,我对适当的文件调用deleteOnExit。但是,自从 jdk 1.6.0_14 以来,我无法删除OnExit。谷歌搜索表明存在某种预期的变化,但我还没有看到解决此问题的方法。大家有什么想法吗?
下面的代码不起作用。
for(File f : myFileList)
try{
f.deleteOnExit()
} finally {
f.delete()
}
最佳答案
我认为您不会对作为有序关闭过程的一部分清理文件的结果感到满意。例如,如果您的进程崩溃或通过“kill -9”停止,那么您的清理代码将不会运行。
更可靠的方法是在启动/初始化期间设置环境。如果您将此应用程序的文件隔离在特定目录中,那么这很简单:只需 empty the directory有问题。
“空目录”调用的确切位置取决于您的应用程序。例如,如果您编写了 servlet,则使用 the init method 。或者,如果您使用 Spring,那么它们会提供各种初始化 Hook ,例如 init-method .
关于java - DeleteOnExit jvm 关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6509419/