Linux上低磁盘空间条件下的Java属性文件

Linux上低磁盘空间条件下的Java属性文件,java,linux,redhat,Java,Linux,Redhat,我无意中在Linux上运行了一个Java程序,它所在的分区、属性和日志几乎100%满了。它失败了,但在解决了磁盘空间的问题后,我再次运行了它,第二次失败了,因为它的属性文件长度为0字节 我没有该文件的源代码,也不想深入到反编译类文件的地步,但我想知道属性的损坏是否可能是因为程序未能写入属性文件 神秘的是,我希望属性是只读的,并且不记得程序正在更新的任何项目。是否即使属性是只读的,文件也是以读写模式打开的,如果分区已满,文件可能会消失 注意:该程序在几年内至少运行了1000次,没有出现故障或事故

我无意中在Linux上运行了一个Java程序,它所在的分区、属性和日志几乎100%满了。它失败了,但在解决了磁盘空间的问题后,我再次运行了它,第二次失败了,因为它的属性文件长度为0字节

我没有该文件的源代码,也不想深入到反编译类文件的地步,但我想知道属性的损坏是否可能是因为程序未能写入属性文件

神秘的是,我希望属性是只读的,并且不记得程序正在更新的任何项目。是否即使属性是只读的,文件也是以读写模式打开的,如果分区已满,文件可能会消失

注意:该程序在几年内至少运行了1000次,没有出现故障或事故

我没有该文件的源代码,也不想深入到反编译类文件的地步,但我想知道属性的损坏是否可能是因为程序未能写入属性文件

这是最可能的解释。可能会出现异常,但应用程序可能会将其压扁。。。或者可能您没有注意到错误消息。(事实上,如果应用程序试图将错误记录到文件中,那么很可能也会失败。)

是否即使属性是只读的,文件也是以读写模式打开的,如果分区已满,文件可能会消失

在这种情况下,这不太可能是答案。与许多语言不同,在Java中,读取文件和写入文件的代码涉及不同的流类。很难想象,如果应用程序的开发人员从未打算编写属性文件,他们会如何/为什么打开属性文件进行编写(使用截断)

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

注意:该程序在几年内至少运行了1000次,没有出现故障或事故


我敢打赌这是您第一次在磁盘已满的情况下运行它:-)

在不知道程序对文件做了什么的情况下,无法回答这个问题。您已经在没有备份的情况下运行了几年了?