2016-08-04 28 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

查看我更新的答案 –