2009-04-20 2 views
6

ファイルの実際のパスを使用せずにプロパティファイルをロードしようとしています。私はすでにいくつかの他のシンプルなアプリでこれを行っています:classloader.getSystemResourceAsStreamがnullを返します

InputStream inputStream = ClassLoader.getSystemResourceAsStream(PROPERTIES_FILE); 
props.load(inputStream); 

しかし今回はうまくいきません。 InputStreamは何らかの理由でnullです。 PROPERTIES_FILEは、「app.properties」として定義された定数です。 .properties拡張を削除しようとしたところ、同じ結果が得られました。

アイデア?

ありがとうございました。

+2

app.propertiesはどこにありますか? –

答えて

13

PROPERTIES_FILE定数はパッケージだけでなく、プロパティファイル(例:「COM /いくつかの/ライブラリ/ file.properties」を含める必要があります。

final static String PROPS_FILE = "/com/some/library/file.props"; 
        //The preceding "/" is dependendant on wheterh 
        //you are going to be giving a relative or absolute location 
    InputStream is = YourCurrentClass.class.getResourceAsStream(PROPS_FILE); 
+0

パッケージ情報を追加しましたが、同じエラーが表示されています。その呼出しをしているのは、それが何かを助けるならば静的です。 – Lancelot

+0

実際には、パッケージ名を追加したときにタイプミスがありました。そのソリューションは素晴らしい仕事でした。ありがとう! :) – Lancelot

+1

あなたのクラスのクラスローダーでgetResourceAsStreamを呼び出すことができます。おそらくあなたのクラスのクラスです。 –