2012-03-06 117 views
0

我在Linux上無意間運行了一個Java程序,它的屬性和日誌駐留的分區接近100%滿。它失敗了,但是在解決了磁盤空間問題之後,我再次運行它,並且第二次失敗,因爲它的屬性文件長度爲0字節。Linux下磁盤空間不足的Java屬性文件

我沒有該文件的來源,我不想去反編譯類文件,但我想知道是否可能因爲程序無法寫入屬性文件。

神祕的是,我預計這些屬性將是隻讀的,並且不記得程序正在更新的任何項目。難道即使僅讀取屬性,文件以讀寫模式打開,如果分區已滿,可能會消失?

N.b.這個程序在幾年內至少運行了1000次,沒有發生故障或事件。

+1

不知道該程序的功能與文件什麼的第一次,有沒有辦法回答這個問題。 – 2012-03-06 23:05:13

+1

你已經運行了好幾年沒有備份? – 2012-03-06 23:05:14

回答

1

我沒有該文件的來源,我不想去反編譯類文件,但我想知道是否可能因爲程序無法寫入屬性文件。

這是最可能的解釋。會有一個例外,但應用程序可能會壓扁它...或者你沒有注意到錯誤信息。 (事實上​​,如果應用程序試圖將錯誤記錄到文件中,這將很可能會失敗過。)

難道說,即使屬性是隻讀的,文件在讀寫模式打開如果分區已滿,可能會消失?

這不可能是這種情況下的答案。與許多語言不同,在Java中,讀取文件和寫入文件的代碼涉及不同的流類。如果沒有任何意圖寫它,很難想象如何/爲什麼應用程序的開發人員會打開屬性文件進行寫入(帶截斷)。

最合理的解釋是應用程序確實更新了屬性文件。 (嘗試再次安裝程序,使用它,停止它,並查看屬性文件的修改時間戳。)

N.b.這個程序在幾年內至少運行了1000次,沒有發生故障或事件。

我敢打賭,這是你運行它,而磁盤已滿:-)

相關問題