私のアプリでは、実行情報を保存するファイルを作成しています。実行が完了すると、一時ファイルを削除します。ファイルが閉じられたり、ストリームでフラッシュされたりしても問題は解決しません。ファイルを削除できません。試してみましたJavaファイルの削除とSystem.gc()
Thread.sleep(1000);
file.delete();
このファイルも削除されませんでした。私はその後、whileループを作成しました
永遠にループしていました。私はそれを加えた
System.gc();
file.delete();
それは働いた!
私はファイルを正常に閉じたり、フラッシュしたことを確認しました。私のコードがSystem.gc()
と一緒に働いた理由を知りたいですか?
ファイルを削除する前に、開いているファイルストリームをすべて閉じてください。 – mre
それでも、本当です。 Windows関連のバグJDK-4715154です。 Scalaランタイムライブラリに特別な 'scala.compat.Platform.collectGarbage()'エントリがあるのはおそらくそうでしょう。 – Epicurist