DeleteOnExit jvm shutdown

时间:2011-06-28 15:59:55

标签: java spring jvm

我目前有一个tomcat webapp,需要在JVM关闭时删除文件。我创建了一个自定义ContextLoaderListener来处理contextDestroyed事件。在这里我在适当的文件上调用deleteOnExit。但是,自从jdk 1.6.0_14以来我无法删除OnExit。谷歌搜索表明有一些预期的变化,但我没有看到解决这个问题。有人有什么想法吗?

下面的代码不起作用。

for(File f : myFileList)
try{
    f.deleteOnExit()
} finally {
    f.delete()
}

1 个答案:

答案 0 :(得分:5)

我认为您不会对清理文件的结果感到满意,因为这是有序关机过程的一部分。例如,如果您的进程崩溃或使用“kill -9”停止,那么您的清理代码将无法运行。

更可靠的方法是在启动/初始化期间设置环境。如果您将此应用程序的文件隔离在特定目录中,那么这很容易:只讨论empty the directory

“空目录”调用的确切位置取决于您的应用程序。例如,如果您编写了servlet,则使用the init method。或者,如果您使用Spring,那么它们会提供各种初始化挂钩,例如init-method

相关问题