2016-08-04 44 views
1

我使用Apache Commons Configuration也保持在一个属性一些属性文件位于包re/iprocu/coperativeerp/config/payment/configurations.propertiesApache的共享配置广东话保存

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) 

更新

阿帕奇百科全书配置V. 1.10

Maven的依赖

<dependency> 
    <groupId>commons-configuration</groupId> 
    <artifactId>commons-configuration</artifactId> 
    <version>1.10</version> 
</dependency> 
+0

你能告诉你使用的Commons-configuration jar版本吗? –

回答

1

无法保存指向一个JAR中的文件的配置。尝试使用位于JAR外部的配置文件,您会看到自动保存选项正常工作。

编辑

你可以把文件都在一个罐子,在默认位置的一个相同的相对路径。这是the documentation所说的。

如果不指定绝对路径,文件会自动在以下位置搜索:

    在当前目录中的用户主目录中的类路径

因此,如果你有一个默认的属性文件在您的JAR中,位于conf/configuration.properties,您可以将这些属性放置在用户的主目录下相同的相对路径下 - 例如,在Linux /home/username/conf/configuration.properties上或与您的JAR文件位于同一目录中。两者都应该足够安全。

+0

那么最大的问题是在哪里保存属性文件(该位置应该是相对路径,并确保它不会有安全问题)? –

+0

查看我更新的答案 –