動作させようとしている非常に単純なプロパティファイルテストがあります:(以下はTestProperties.Javaです)
package com.example.test;
import Java.util.ResourceBundle;
public class TestProperties {
public static void main(String[] args) {
ResourceBundle myResources =
ResourceBundle.getBundle("TestProperties");
for (String s : myResources.keySet())
{
System.out.println(s);
}
}
}
同じディレクトリ内のTestProperties.properties:
something=this is something
something.else=this is something else
これもTestProperties_en_US.properties
として保存しました
EclipseからTestProperties.Javaを実行すると、プロパティファイルが見つかりません。
Java.util.MissingResourceException:
Can't find bundle for base name TestProperties, locale en_US
私は何か間違ったことをしていますか?
ソースパスの1つのルートレベルに配置するか、getBundle
の呼び出しでリソース名を完全修飾します。例:.
_ResourceBundle myResources =
ResourceBundle.getBundle("com.example.test.TestProperties");
_
詳細については、 ResourceBundle.getBundle(String, Locale, ClassLoader)
のドキュメントを参照してください。
プロパティファイルをsrcフォルダに入れないでください!明らかにそれは機能しますが、基本的にこれはあなたがあなたの問題に取り組むべき方法ではありません。プロジェクトに新しいフォルダ(たとえば、「Resources」フォルダ)を作成し、プロジェクトプロパティのクラスパスに追加して、.Java以外のすべてのファイルをそこに配置します。
私もこの問題を解決しようとしていますが、プロジェクトを実行する前に、Eclipseのファイルリストを更新する必要があることがわかりました。次に、ファイルをベースディレクトリに置き、通常どおりに使用できます。
テキストプロパティen_US.properties(property)ファイルをsrcフォルダーに置き、実行するプログラムを実行します
ああ、たくさんありがとう。これも機能します。
package com.example.test;
import Java.util.ResourceBundle;
public class TestProperties {
public static void main(String[] args) {
ResourceBundle myResources =
ResourceBundle.getBundle(TestProperties.class.getCanonicalName());
for (String s : myResources.keySet())
{
System.out.println(s);
}
}
}