Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Javaでも。
[go: Go Back, main page]

■Jakarta Commons Configuration version1.1 - システムプロパティを読み込む

システムプロパティを読み込む

システムプロパティを読み込むには SystemConfiguration クラスを使います。
インスタンスさえ作ってしまえばあとはいつも通り、お決まりの手順で使えます。
つまりはプロパティファイルを扱うときのやりかたと同じで OK。

Configuration config = new SystemConfiguration();
System.out.println("font-name:" + config.getString("font.name"));

また、ConfigurationFactory で使う場合は xml に <system/> タグを書きます。

<?xml version="1.0" encoding="Shift_JIS"?>
<configuration>
    <system/>
</configuration>

この通り。

サンプルコード

今回のサンプルはシステムプロパティと xml ファイルから値を読み込むサンプルです。
最初にシステムプロパティから値を読み込み、それが無理なら xml ファイルの値を読み込む。そんなイメージ。

まずは ConfigurationFactory で読み込む xml ファイル(config_fac2.xml)。

<?xml version="1.0" encoding="Shift_JIS"?>
<configuration>
    <system/>
    <xml fileName="default_setting.xml"/>
</configuration>

次はシステムプロパティが読めなかったときに読み込む値が書いてある xml ファイル (default_setting.xml)。

<?xml version="1.0" encoding="Shift_JIS"?>
<default>
    <font>
        <name>MS ゴシック</name>
        <size>12</size>
    </font>
</default>

そしてメインとなるソースです。

package javademo.config;

import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.ConfigurationFactory;

public class Run {

    public static void main(String[] args){
        try{
            ConfigurationFactory factory = new ConfigurationFactory("config_fac2.xml");
            Configuration config = factory.getConfiguration();
            
            System.out.println("font-name:" + config.getString("font.name"));
            System.out.println("font-size:" + config.getString("font.size"));
         }
        catch(ConfigurationException e){
            e.printStackTrace();
            System.exit(1);
        }
    }
}

実行のときには -Dfont.size=10 の様にオプションでシステムプロパティを指定して実行してみてください。

まとめ

システムプロパティを読み込むときのまとめ。