- - PR -
ResourceBundle#getBundleでのリソース参照順序
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-10-20 18:31
Tanakaと申します。
java.util.ResourceBundle について質問があります。 次のような条件で実行してたところ、MissingResourceException が 発生します。 OS Windows 2000 Server JDK 1.3 CLASSPATH ./;C:/java_classes デフォルトロケール ja_JP リソースファイル C:/java_classes/mypackage/MyResource.properties 問題のコードの例 java.util.ResourceBundle myResource = java.util.ResourceBundle.getBundle("mypackage.MyResource"); ここで、リソースファイル名を "MyResource_ja.properties" に変更した ところ例外が発生せずに動作しました。 "MyResource_ja_JP.properties" でも例外が発生しました。 私は、上述した条件だと以下のようにリソースファイルを参照しに行くものと 思っていましたし、API リファレンスにも以下のような順序で参照しに行くように 書いてあったと思います。 1.mypackage.MyResource_ja_JP クラス 2.mypackage.MyResource_ja_JP.properties ファイル 3.mypackage.MyResource_ja クラス 4.mypackage.MyResource_ja.properties ファイル 5.mypackage.MyResource クラス 6.mypackage.MyResource.properties ファイル ですが、mypackage.MyResource_ja.properties ファイル以外では、 例外が発生してしまいます。(クラスは試していません) また、同一OS、同一JDKでも例外が発生するマシンと発生しないマシンがあります。 ResourceBundle#getBundle 呼び出し時にロケールを渡す以外の方法で、 このリソースファイルの参照順序を制御する設定などがあるのでしょうか? 有識者の方のご享受をお願いいたします。 _________________ -- Tanaka |
|
投稿日時: 2003-10-20 19:25
こんばんは。
原因、解決策はわかりませんが。。。 私の環境(ロケールはja_JP)では、 *_ja_JP.properties *_ja.properties *.properties の3つのパターンに対して、MissingResourceExceptionは 発生しませんでした。 また、この順番で参照しにいきました。 ただ私の環境は次の通りです。 Windows XP Professional, JSDK1.4.2, ja_JP(デフォルトロケール) 一番あやしいのはやはりデフォルトロケールでしょうか。 ResourceBundle取得直前で、 System.out.println(Locale.getDefault().toString()); などとして、デフォルトロケールは確認されたでしょうか。 バグレポートを検索してみると なにか見つかるかもしれませんね。 |
1
