Java Preferences API on OS X

| トラックバック(0)
Javaの勉強メモです。

一般的に、アプリケーションには、何かと設定を保存する仕組みが必要です。
アプリケーションのディレクトリに設定ファイルディレクトリを用意しておいて、そこにファイル作っちゃった方が手軽のような気もしますが、それだとマルチユーザーに対応できないのと、アプリのバージョンアップ時に、設定ファイルを残したまま入れ替えてもらわないといけないということになります。

Javaの場合、各プラットフォームに適した形でアプリケーションの設定を保存する、 Java Preferences APIというのがあるようです。

OS XのJavaでも一応サポートされているようですが、com.apple.java.util.prefs
よくわからなかったので、こちらを参考にさせていただき、以下のテストプログラムを書いて試してみました。
public class Test2 {
    private Preferences prefs;
    private static final String KEY = "TEST2";

    public Test2() {
        prefs = Preferences.userNodeForPackage(this.getClass());
    }

    public void save(String name){
        System.out.println("Save the name: " + name);
        prefs.put(KEY, name);
        try {
            prefs.flush();
        } catch (BackingStoreException e) {
            e.printStackTrace();
            System.exit(1);
        }
    }
	
    public static void main(String[] args) {
        Test2 t2 = new Test2();
        t2.save("hoge2");
    }
}
すると、ユーザーのホームディレクトリ/Library/Preferences の中に、com.apple.java.util.prefs.plist というファイルが出来ていて、中身は以下のようになっていました。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>/</key>
        <dict>
                <key><unnamed>/</key>
                <dict>
                        <key>TEST2</key>
                        <string>hoge2</string>
                </dict>
                <key>children</key>
                <array/>
                <key>java/</key>
                <dict>
                        <key>awt/</key>
                        <dict>
                                <key>im/</key>
                                <dict/>
                        </dict>
                </dict>
                <key>keys</key>
                <dict/>
        </dict>
</dict>
</plist>
(追記) ソースに jp.soin.test2 というパッケージ名を付けたら、以下のようにして jp.soin.test2.plist という一つのファイルに書かれました。パッケージにしないときだけ、上記のファイルに書かれるっぽいです。なるほど。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>/jp/soin/test2/</key>
	<dict>
		<key>TEST2</key>
		<string>hoge2</string>
	</dict>
</dict>
</plist>

トラックバック(0)

トラックバックURL: http://soin.jp/mt/mt-tb.cgi/1157

    follow me on Twitter

    ウェブページ

    このブログ記事について

    このページは、ORIが2004年3月28日 17:37に書いたブログ記事です。

    ひとつ前のブログ記事は「マブリ」です。

    次のブログ記事は「オープンソースの音声合成ライブラリ FreeTTS」です。

    最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

    Powered by Movable Type 4.23-ja