2011-10-21 12 views
0

Javaクラスは/webserver/tomcat-instance/webapps/shop/WEB-INF/classes/com/mobile/commonsというフォルダにありますが、実際のプロパティファイルは /webserver/tomcat-instance/webapps/shop/WEB-INF/classes/resourcesディレクトリにあります。今私のjavaファイルでは、私は相対パスを/WEB-INF/classes/resources/prop.propertiesとして、目的のファイルを読み込むようにしたが、毎回FileNotFound例外を取得している。相対パスを使用してプロパティファイルの内容を読み取ることができません

この問題を解決するのを手伝ってください。私は絶対パスを使用したくないので、私は相対パスとして何を使用すべきですか?

おかげで、 Sourav

+0

ファイルをどのように読み込もうとしているか、推測したいのですか? – Thomas

答えて

1

でそれを読んで試してみてください

this.getClass().getClassLoader().getResourceAsStream("resources/prop.properties"); 

更新:

URL resource = classLoader.getResource("resources/prop.properties"); 
File file = new File(resource.toURI()); 
FileInputStream input = new FileInputStream(file); 
+0

はい!言及されたアプローチは私のために働いた。たくさんありがとう。もう1つ質問があります。つまり、InputStreamではなくFileInputStreamを使用して同じプロパティファイルをどのように読み取ることができますか? –

+0

udpateを参照

1

それが使用することをお勧めします

Thread.currentThread().getContextClassLoader().getResourceAsStream("resources/prop.properties") 
+0

クラスをロードする場合は、コンテキストClassLoaderを取得する方がよいでしょう。しかし、リソースストリームを読む場合にどのように違いが生じるのかは分かりません。 – Thor84no

関連する問題