2009-11-02 12 views
12

プロダクションモニタリング用のスタンドアロンJavaアプリケーションを作成しています。 apiの実行が開始されると、.propertiesファイルに設定されているデフォルト値が設定されます。実行中の状態では、apiの設定を変更することができ、.propertiesファイルをそれに応じて更新する必要があります。これを達成する方法はありますか?またはこれを実装する他の方法がありますか?事前javaアップデートプロパティファイルの実行時間

答えて

16

おかげでJavaのPropertiesクラス(api here)はまさにそれを行う必要があります「負荷」と「ストア」メソッドを指定します。 FileInputStreamとFileOutputStreamを使用して、保存するファイルを指定します。

9

あなたは確かにあなたがのFileInputStreamとのFileOutputStreamと組み合わせて使用​​することができますloadstoreメソッドを持っていjava.util.Propertiesクラスに基づいて非常に単純なアプローチを使用することができます。

をしかし実際に、私が使用することをお勧めしますCommons Configurationのような既存の構成ライブラリ(他のものの中で)。 Properties Howtoをチェックして、APIを使用してプロパティーファイルをロード、保存、および自動的に再ロードする方法を確認してください。

0

Propertiesクラスのloadstore方法に加えて、あなたも簡単に設定ファイルを操作するための機能を提供します(とだけでなく、ファイルの.properties)はApache Commonsの設定ライブラリを使用することができます。

3

java.util.Propertiesは、私が知る限り、すぐに実行可能な再ロードを提供しません。 Commons Configurationは、実行時に構成を再ロードするためのサポートを提供します。リロード戦略はsetting a ReloadingStrategy on the PropertiesConfiguration objectで設定できます。また、アプリケーションを構成可能にするためのさまざまな便利なユーティリティも提供しています。

0

Apache共通コンフィグレーションAPIでは、実行時にプロパティファイルをリロードするさまざまな方法が用意されています。 FileChangedReloadingStrategyはその1つです。 FileChangedReloadingStrategyを使用して、実行時のプロパティファイルの再ロードの例を参照するには、linkを参照してください。

3

私はApache Commons Configuration APIが本当に良い選択だと完全に同意します。

ポストからランタイム

File propertiesFile = new File(getClass().getClassLoader().getResource(fileName).getFile());   
PropertiesConfiguration config = new PropertiesConfiguration(propertiesFile);   
config.setProperty("hibernate.show_sql", "true"); 
config.save(); 

でこの例の更新プロパティhow to update properties file in Java

・ホープこのヘルプ!