ResourceBundle.getBundle
Ja-Jakarta Project 掲示板 > Tomcatで定義ファイルの読み込みができません
Servlet の設定ファイル(とりあえず properties)はどこに置けばいいだろうか?
CLASSPATH の通っている場所に置いておけばいいか,どうせ Servlet と同じ場所 (
実際に実行時に System.getProperty("java.class.path") で CLASSPATH を表示してみると,$CATALINA_HOME/bin/bootstrap.jar だけだった.つまり,狙った場所に CLASSPATH が通っておらず,取得したはずの InputStream が null になっていた.
結局,
private static final String PROPERTIES_BASENAME = "test"; ResourceBundle bundle = PropertyResourceBundle.getBundle(PROPERTIES_BASENAME); String value1 = bundle.getString("key1"); String value2 = bundle.getString("key2");
として,
というのは,説明 にあるように ResourceBundle.getBundle も内部的に ClassLoader.getResource を使っているので,同様に CLASSPATH の問題が起こるのではないか,と思うからだ.
ただ,よく見ると,ClassLoader.getResource と ClassLoader.getSystemResource はリソースの検索に使用するクラスローダが違うらしい.では,ResourceBundle.getBundle 内の ClassLoader.getResource はどのクラスローダを使っているのだろうか?