我正在使用Apache Commons Configuration将某些属性保留在包中的属性文件中 re/iprocu/coperativeerp/config/payment/configurations.properties
private PropertiesConfiguration configs = new PropertiesConfiguration("re/iprocu/coperativeerp/config/payment/configurations.properties");
configs.setAutoSave(true);
configs.setProperty(date.getYear()+"-"+date.getMonthValue()+"-01", offsetMember);
问题是当我运行上面的代码时,出现以下错误
Exception in thread "JavaFX Application Thread" org.apache.commons.configuration.ConfigurationRuntimeException: Failed to auto-save
at org.apache.commons.configuration.AbstractFileConfiguration.possiblySave(AbstractFileConfiguration.java:753)
at org.apache.commons.configuration.AbstractFileConfiguration.clearProperty(AbstractFileConfiguration.java:799)
at org.apache.commons.configuration.AbstractConfiguration.setProperty(AbstractConfiguration.java:485)
at org.apache.commons.configuration.AbstractFileConfiguration.setProperty(AbstractFileConfiguration.java:788)
更新
Apache Commons Configuration V.1.10
Maven依赖
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version>
</dependency>
您不能保存指向JAR中文件的配置。尝试使用JAR外部的配置文件,您会看到自动保存选项可以正常工作。
编辑
您可以将文件放在JAR文件中,也可以放在默认位置之一的相同相对路径中。这就是文档所说的。
如果未指定绝对路径,则将在以下位置自动搜索文件:
- 在当前目录中
- 在用户主目录中
- 在类路径中
因此,例如,如果您的JAR中有一个默认属性文件,位于conf/configuration.properties
,则可以将属性放在用户的主目录下相同的相对路径下(例如,在Linux上)/home/username/conf/configuration.properties
或与JAR文件位于同一目录中。两者都应足够安全。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句