2016-03-26 15 views
0

データベースの資格情報が格納されているconfig.propertiesファイルがありますが、それを読み取ろうとするとNullPointerException、Any Ideasが発生します。config.properties NullPointerException

フォルダ構造:

COM/mypackageと/ configに

  • DbConnector.java
  • config.properties

たDbConnectionクラス

final String PROPERTIES_FILE = "com\\mypackage\\Config\\config.properties"; 
     InputStream inputStream = getClass().getResourceAsStream(PROPERTIES_FILE); 
     Properties dbProperties = new Properties(); 

     dbProperties.load(inputStream); //The run doesn't pass this point 

T彼は例外

Exception in thread "main" java.lang.NullPointerException 
at java.util.Properties$LineReader.readLine(Properties.java:434) 
at java.util.Properties.load0(Properties.java:353) 
at java.util.Properties.load(Properties.java:341) 
at  com.cetys.cetyslibraryinventory.Config.DataBaseConnector.retrieveConnectionParameters(DataBaseConnector.java:68) 

私はこれがファイルが見つかりませんが必要です知っている必要がありますか?何か案は?

更新

私は、パスに「SRC \メイン\のJava \ COM \ mypackageと\ CONFIG \ config.properties」があり、それは動作しますが、私はハードコードされたアプローチのようなもの好きではないいずれかを変更した場合もっとプログラマティックな方法?

答えて

0

ファイル名config.propertiesの絶対パスを使用してみましたか? DbConnectionクラスと同じフォルダにあるconfig.propertiesファイルもありますか?その場合はその後、ちょうど私の案は、Mavenを使用していた final String PROPERTIES_FILE = "config.properties";

+0

私はそれを試みましたが、動作しません。 –

+0

絶対パスが動作するように更新しました!つまり、相対パスが間違っていることを意味します。 "\"を使用して相対パスを先に試してみてください。 –

0

を書くので、私は

String PROPERTIES_FILE = "config.properties"; 
    InputStream inputStream = Thread.currentThread().getContextClassLoader() 
       .getResourceAsStream(PROPERTIES_FILE); 
    Properties dbProperties = new Properties(); 

    dbProperties.load(inputStream); 

としてパスを変更し、すべての作品 メイン/ resourcesフォルダにファイルを移動して。

ありがとうございました