config.properties NullPointerException

时间:2016-03-26 06:37:07

标签: java properties config

我有一个config.properties文件,其中存储了数据库的凭据,但是当我尝试读取它时,我得到一个NullPointerException,Any Ideas ??

文件夹结构:

COM / mypackage的/配置

  • DbConnector.java
  • config.properties

DbConnection Class

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

例外

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 \ main \ java \ com \ mypackage \ config \ config.properties”它可以正常工作,但我不喜欢那种硬编码方法还有更多的程序化方法吗?

2 个答案:

答案 0 :(得分:0)

您是否尝试使用config.properties文件名的绝对路径? config.properties文件与DbConnection类位于同一文件夹中吗?如果是这样的话,那就写吧 final String PROPERTIES_FILE = "config.properties";

答案 1 :(得分:0)

我的专业版正在使用maven,因此我将文件移动到main / resources文件夹中 将路径更改为

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

    dbProperties.load(inputStream);

一切正常。

由于