Linux上磁盘空间不足的Java属性文件

时间:2012-03-06 22:59:19

标签: java linux redhat

我无意中在Linux上运行了一个Java程序,它所在的分区,它的属性和日志所在的分区接近100%已满。它失败了,但是在清除了磁盘空间的问题之后,我再次运行它并且第二次失败,因为它的属性文件是0字节长。

我没有该文件的来源,我不想去反编译类文件,但我想知道这些文件的损坏是否是因为程序无法写入属性文件

谜团是,我希望这些属性是只读的,不要回想起程序正在更新的任何项目。难道即使只读取属性,文件也会以读写模式打开,如果分区已满,它可能会消失吗?

N.b。这个程序在几年内至少运行了1000次没有失败或事故。

1 个答案:

答案 0 :(得分:1)

  

我没有该文件的来源,我不想去反编译类文件,但我想知道这些文件的损坏是否是因为程序无法写入属性文件

这是最可能的解释。会有一个例外,但应用程序可能会压扁它......或者您可能没有注意到错误消息。 (实际上,如果应用程序试图将错误记录到文件中,那么很可能也会失败。)

  

即使只读取属性,文件也会以读写模式打开,如果分区已满,它可能会消失吗?

在这种情况下,这不太可能是答案。与许多语言不同,在Java中,用于读取文件和编写文件的代码涉及不同的流类。很难想象应用程序的开发人员如何打开一个属性文件进行写入(截断),如果从来没有打算写它的话。很难想象。

最合理的解释是应用程序 更新属性文件。 (尝试再次安装程序,使用它,停止它,并查看属性文件的修改时间戳。)

  

N.b。这个程序在几年内至少运行了1000次没有失败或事故。

我打赌这是你第一次在磁盘已满时运行它: - )