- PR -

プロパティファイルの配置場所

投稿者投稿内容
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-06-23 15:02
引用:

Muraさんの書き込み (2004-06-23 11:00) より:
これでもできたのですが、ResourceBundleは多言語対応のために使用するようで、
javahello_ja.propertiesと名前を変更しなければいけませんでした。


そんなことはありません。リソースファイルの検索順は
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/ResourceBundle.html#getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader)
に書いてありますが、ロケールの指定がなくても大丈夫です。
#もちろんjavahello_ja.propertiesとjavahello.propertiesがある場合には前者を優先しますが

引用:

一つ疑問なんですが、プロパティファイルを読むにはHttpServletを継承している
サーブレットクラス内からでないと読むことはできないのでしょうか?


いいえ。試してみましたか? 前にも書きましたが、使用するクラスローダに依存します。
Mura
会議室デビュー日: 2004/06/22
投稿数: 4
投稿日時: 2004-06-23 17:52
申し訳ありません。
Clusterさんの
ResourceBundle bundle = ResourceBundle.getBundle("javahello");
で無事できました。
最初
ResourceBundle bundle = ResourceBundle.getBundle("javahello.properties");
と拡張子部分をつけてしまったのでエラーになっていたようです。





引用:

ukさんの書き込み (2004-06-23 15:02) より:
いいえ。試してみましたか? 前にも書きましたが、使用するクラスローダに依存します。


クラスローダというものがよくわかってないのですが、とりあえずインスタンス化した
クラスならなんでも良いのかとjava.util.Propertiesクラスをインスタンス化して
コード:
Properties prop = new Properties();
java.io.InputStream ips = prop.getClass().getClassLoader().getResourceAsStream( propFile );


のようにしてみたらjava.lang.NullPointerExceptionが発生したのでできないのかと思ってしまいました。

しかし適当な自作クラスを作成・・インスタンス化して同様の事をやったらうまくいきました。
コード:
public class HogeClass {
	public HogeClass() { }
}

のようなクラスを作成して
HogeClass hoge = new HogeClass();
java.io.InputStream ips = hoge.getClass().getClassLoader().getResourceAsStream( propFile );


のようにやったところうまくいきました。


いろいろとご指導ありがとうございました。m(_ _)m

スキルアップ/キャリアアップ(JOB@IT)