2016-08-04 19 views
1
私はプロパティでいくつかのプロパティは、パッケージ内にあるファイル保つためにはApache Commonsの設定を使用しています

re/iprocu/coperativeerp/config/payment/configurations.propertiesのApache Commonsの設定カント保存

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の設定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の外部にある構成ファイルを使用してみてください。自動保存オプションが正しく動作することがわかります。あなたがJARで、デフォルトの場所のいずれかで同じ相対パスで両方のファイルを置くことができる

EDIT

。ここにはthe documentationの説明があります。クラスパスに現在のディレクトリに

  • ユーザーのホームディレクトリに
  • あなたは絶対パスを指定しない場合、ファイルは以下の場所に自動的に検索されます

たとえば、デフォルトのプロパティファイルあなたのJARで、conf/configuration.propertiesに位置していれば、プロパティを同じ相対パスの下のユーザーのホームディレクトリに置くことができます。 Linuxの/home/username/conf/configuration.propertiesまたはJARファイルと同じディレクトリにあります。両方とも十分に安全でなければなりません。

+0

大きな問題は、プロパティファイルをどこに保存するか(場所は相対パスであり、セキュリティ上の問題がないことを確認することです)です。 –

+0

私の更新された回答を見る –

関連する問題