現在、JVMをシャットダウンするときにファイルを削除する必要があるtomcat Webアプリケーションがあります。 contextDestroyedイベントを処理するカスタムContextLoaderListenerを作成しました。ここでは、適切なファイルに対してdeleteOnExitを呼び出します。しかし、jdk 1.6.0_14以来、私はOnOExitを削除できません。グーグルは、若干の変更が予想されることを示していますが、私はこれを回避する方法を見ていません。誰でもアイデアはありますか?DeleteOnExit jvm shutdown
以下のコードは機能しません。
for(File f : myFileList)
try{
f.deleteOnExit()
} finally {
f.delete()
}
仮想マシンの正常終了に関係なく、これは起こりますか?また、ファイルのすべてのハンドルも閉じていることを確認してください。 – mre
'File.deleteOnExit'は、シャットダウンハンドラではなく、ファイルを作成するときに呼び出されることに注意してください。要点は、システムが終了したときにファイルを削除するように要求することです(整然とした方法で)。 – sudocode
deleteOnExitが悪い、リークし、期待どおりのファイルでも削除される可能性があります。要するに、それを使わないでください。 (そして最後にはファイルを削除する部分がたくさんあるので、もっと良い結果は得られません) – bestsss