我繼承了一些代碼:進程生成WAITFOR()問題,並打開文件限制
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
而且一幫我的意思是在10K的領域 - 數以百萬計
給我的感覺的WAITFOR電話是停止這些從等待進程完成並退出,但我認爲chmod在文件實際關閉之前返回結果。有誰知道這是否會成爲這些例外的原因?
我的另一個傾向是,成千上萬的文件的打開和關閉在java端沒有足夠快地發生,並且還有其他事情正在發生,也許類似於某種形式的文件緩衝區不是當fw.close()被調用時被清除。
我對Java很新,這是一個地獄奇怪的,讓我難住。 (很高興該應用程序仍然以某種方式運行..後吐出一個非常大的日誌文件是)
其他人可以想到一種方法來解決這個問題,清理緩衝區或增加文件打開限制的東西,jvm可以保持自己(假設這是問題)
什麼是您的目標操作系統(和版本)。看到這個:http://unix.derkeiler.com/Newsgroups/comp.unix.solaris/2007-02/msg00873.html – 2009-07-15 06:21:11
debian,它似乎被清除出uname。將是最新的穩定。 – Louis 2009-07-15 21:24:58