【问题标题】:config.properties NullPointerExceptionconfig.properties NullPointerException
【发布时间】:2016-03-26 06:37:06
【问题描述】:

我有一个 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

例外

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”,它可以工作,但我不喜欢那种硬编码的方法,还有更多的编程方式吗?

【问题讨论】:

    标签: java properties config


    【解决方案1】:

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

    【讨论】:

    • 您刚刚更新了绝对路径有效!这意味着相对路径是错误的。尝试在相对路径之前使用“\”并检查。
    【解决方案2】:

    我的项目使用的是 maven,所以我将文件移动到 main/resources 文件夹并 改变路径为

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

    一切正常。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多