「一気に最後まで読んだ」本、教えて下さい!

ClassLoader.getSystemResourceAsStreamが必ずnullになる


ClassLoader.getSystemResourceAsStream( "test.properties" );

を行うと必ず、nullが返ってきてしまいます.

test.properties



src/test.properties

にあるので、問題なかと思われますが、原因はなんでしょうか?

■環境
Java 6
Tomcat 6

A 回答 (3件)

ClassLoader.getSystemResourceAsStream()


で使われるクラスローダではWEB-INF/classesを参照してないようですね。

手元の環境(Tomcat6.0.18)では
実行クラス.class.getResourceAsStream("test.properties");
で取得できるのですが・・。
実行クラス.class.getSystemResourceAsStream("test.properties");
とはしていないですよね?

ResourceBundle rb = ResourceBundle.getBundle("test");
ではどうでしょうか?
    • good
    • 0

test.propertiesは実際のclassファイル配置場所(web-inf/classesとか)にあるのでしょうか?


eclipseなどで開発しているならsrcフォルダにあれば自動で置かれるとは思いますが。

この回答への補足

Eclipseなので、ご指摘いただいた「WEB-INF/classes」には、ファイルは存在します。

補足日時:2010/10/27 14:37
    • good
    • 0

classpathがとおっていないのではないかと思います。


実行クラス.class.getResourceAsStream("test.properties");
としたらどうでしょうか?

この回答への補足

試してみましたが、結果は同じで、nullとなってしまいます。

補足日時:2010/10/27 11:48
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!