我目前有一个tomcat webapp,需要在JVM关闭时删除文件.我创建了一个自定义ContextLoaderListener来处理contextDestroyed事件.在这里我在适当的文件上调用deleteOnExit.但是,自从jdk 1.6.0_14以来我无法删除OnExit.谷歌搜索表明有一些预期的变化,但我没有看到解决这个问题.有人有主意吗?
下面的代码不起作用.
for(File f : myFileList)
try{
f.deleteOnExit()
} finally {
f.delete()
}
Run Code Online (Sandbox Code Playgroud)
作为有序关机过程的一部分,我不认为你会对清理文件的结果感到满意.例如,如果您的进程崩溃或使用"kill -9"停止,那么您的清理代码将无法运行.
更可靠的方法是在启动/初始化期间设置环境.如果在特定目录中隔离此应用程序的文件,则这很容易:只需清空相关目录即可.
"空目录"调用所属的确切位置取决于您的应用程序.例如,如果编写了servlet,则使用init方法.或者,如果您使用Spring,那么它们会提供各种初始化挂钩,例如init-method.
| 归档时间: |
|
| 查看次数: |
4445 次 |
| 最近记录: |