Javaプログラミングからファイルを作成し、Apache Commons Logging API、特にLog4j実装を使用して一部のデータをログに記録しています。
ロギングが完了した後、Logクラスへの参照をnullとして設定しています。ログに記録しているファイルを削除しようとすると、File.delete()はfalseを返します。
デバッグ中(File.delete()が呼び出される直前)にWindowsエクスプローラーからファイルを削除すると、「削除できません:別のプログラムによって使用されています」という通知が表示されます。
私のコードからのファイルに開いている依存関係はありません(すべてのストリームが閉じています)。ファイルにアクセスできる唯一のオブジェクトはLogオブジェクトであり、File.delete()を呼び出す前にnullに設定しました。
とにかく、ファイルリソースへの参照を保持している特定のオブジェクトを確認できますか?nullに設定する以外に、Logオブジェクトにリソースを解放させる他の方法はありますか?ファイルを強制的に削除できますか?