chanting an air of joyous bliss

普段の生活で見逃しがちな面白いことを書いていく
そんなブログです

プログラム実行時におけるリソースファイルの読み込み

2009-03-03 19:44:38 | Java
プログラム実行中にリソースファイルを再読み込みするロジックを以下に示す
リソースファイルはc:propertiesに保管している
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Locale;
import java.util.ResourceBundle;

public class Main {
    public  void getValueFormLocalResource() throws Exception{
        int count = 0;
        do{
            System.out.println("プログラム実行中に読み込まれたリソース:"
                    +readResourceFromLocal().getString("key"));
            Thread.sleep(10000);
            count++;
        }while(count < 3);
    }
    private ResourceBundle readResourceFromLocal()throws Exception{
        //リソースバンドルをクラスパス上にロードする
        URLClassLoader loader = new URLClassLoader( new URL[] { 
                                              new URL("file:c:properties"),
					      } );
        //loader.loadClass("Sample");←ClassNotFoundExceptionが発生する
         return ResourceBundle.getBundle("Sample",
                Locale.getDefault(),loader);
    }
}
・実行結果
プログラム実行中に読み込まれたリソース:test4
プログラム実行中に読み込まれたリソース:test5←リソースファイルの中身を変更
プログラム実行中に読み込まれたリソース:test5

(ポイント)
  • URLClassLoaderを用いてクラスパスにリソースファイルをロードする
  • URLClassLoader.loadClassメソッドで読み込もうとすると、"ClassNotFoundException"が発生する。ゆえにクラスローダーの指定は "ResourceBundle#getBundle(String baseName, Locale locale, ClassLoader loader)"で行う

(参考サイト)


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 半角英数字を全角英数字に、... | トップ | Eclipse3.4.2 J2EEのWeb開発 »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Java」カテゴリの最新記事