web-dev-qa-db-ja.com

Eclipseプロジェクトのどこに.propertiesファイルを配置しますか?

動作させようとしている非常に単純なプロパティファイルテストがあります:(以下は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

私は何か間違ったことをしていますか?

14
Jason S

ソースパスの1つのルートレベルに配置するか、getBundleの呼び出しでリソース名を完全修飾します。例:.

_ResourceBundle myResources =
          ResourceBundle.getBundle("com.example.test.TestProperties");
_

詳細については、 ResourceBundle.getBundle(String, Locale, ClassLoader) のドキュメントを参照してください。

28
Jon Skeet

プロパティファイルをsrcフォルダに入れないでください!明らかにそれは機能しますが、基本的にこれはあなたがあなたの問題に取り組むべき方法ではありません。プロジェクトに新しいフォルダ(たとえば、「Resources」フォルダ)を作成し、プロジェクトプロパティのクラスパスに追加して、.Java以外のすべてのファイルをそこに配置します。

13
JozefP

私もこの問題を解決しようとしていますが、プロジェクトを実行する前に、Eclipseのファイルリストを更新する必要があることがわかりました。次に、ファイルをベースディレクトリに置き、通常どおりに使用できます。

2
Shannon Gerry

テキストプロパティen_US.properties(property)ファイルをsrcフォルダーに置き、実行するプログラムを実行します

1
sensoft1988

ああ、たくさんありがとう。これも機能します。

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);
        }
    }
}
0
Jason S