私はいくつかのコードを継承しました:
Process p = new ProcessBuilder("/bin/chmod", "777", path).start();
p.waitFor();
基本的に、キーと値のペアをファイルとしてディスクに保存するのには、古くからブードゥー教に基づいた理由があります。私は本当にそれに入りたくありません。
ただし、IO 例外が多数残っています。
Exception :Cannot run program "/bin/chmod": java.io.IOException: error=24, Too many open files
Message: Cannot run program "/bin/chmod": java.io.IOException: error=24, Too many open files
そして、私が意味する束とは、10,000〜数百万の領域を意味します
waitFor 呼び出しは、プロセスが完了して終了するのを待ってこれらの発生を停止するためのものだと感じましたが、ファイルが実際に閉じられる前に chmod が結果を返していると思います。それがこれらの例外の原因であるかどうかは誰にもわかりますか?
私のもう1つの傾向は、Java側で何千ものファイルの開閉が十分に迅速に行われておらず、何か他のことが起こっていることです. fw.close() が呼び出されています。
私はJavaにかなり慣れていませんが、これは私を困惑させた奇妙なものでした。(幸いなことに、アプリはまだ何らかの形で実行されています..非常に大きなログファイルを吐き出した後です)
他の誰かがこれを回避する方法を考えることができますか、バッファをクリアするか、ファイルのオープン制限をjvmがそれ自体に追いつくことができるものに増やします(それが問題であると仮定します)