2009-06-30 6 views
2

javaクラスのプロパティファイルを読み込みたい。このためJavaのプロパティファイル

私が書かれている:

try { 
      Properties property = new Properties(); 
      property .load(new FileInputStream("abc.properties")); 
      String string = property.getProperty("userName"); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

は、私は私のJavaクラスが存在する同じパッケージで私のabc.propertiesファイルを配置しています。しかし、私はFileNotFound例外を取得しています。

プロパティファイルのパスを指定する方法を教えてください。

おかげで、よろしく

答えて

6

FileInputStreamのではなく、あなたのクラスと同じパッケージに、あなたのプログラムの「作業ディレクトリ」内のファイルを探します。

getClass()。getResourceAsStream( "abc.properties")を使用して、同じパッケージからプロパティファイルをロードする必要があります。

+0

、ウルクラスはTestClassをされ、その後ウルコードがに変更しなければならないとしましょうか?あなたは "my/package/abc.properties"を要求する必要があります –

+0

いいえ、それは動作します。パスはクラスに関連しています。 – Thilo

+0

いいえ、getClass()によって表されるClassに対してロードされます。 – skaffman

1

プロパティファイルがクラスファイルの隣にある場合は、FileInputStreamではなく、Class.getResourceAsStreamを使用してください。

property.load(getClass().getResourceAsStream("abc.properties")); 

これは、すべてをjarファイルとしてパッケージ化する場合にも機能します。

1

ClassLoader.getResourceAsStreamを使用する方がよいでしょう。このarticleを参照してください。

0

はabc.propertiesがデフォルトのパッケージに実際にある場合にのみ動作することを確かに

InputStream input = TestClass.class.getResourceAsStream("abc.properties"); 
property.load(input); 
関連する問題