【发布时间】:2011-07-21 01:57:30
【问题描述】:
我从我的 java 编程中创建了一个文件,并且正在使用 Apache Commons Logging API 记录一些数据,特别是 Log4j 实现。
日志记录完成后,我将对 Log 类的引用设置为 null。当我现在尝试删除我一直在记录的文件时,File.delete() 返回 false。
在调试期间(在调用 File.delete() 之前)从 Windows 资源管理器中删除文件时,我收到“无法删除:正在被另一个程序使用”的通知。
我的代码中的文件没有打开的依赖项(所有流都已关闭)。唯一可以访问该文件的对象是 Log 对象,我在调用 File.delete() 之前将其设置为 null
无论如何我可以看到哪个特定对象持有对文件资源的引用? 除了将其设置为 null 之外,还有其他方法可以强制 Log 对象释放资源吗? 我可以强制删除文件吗?
【问题讨论】:
标签: java logging file-io log4j apache-commons-logging