在maven-archetype-quickstart创建的Maven Java Project中读取属性文件

时间:2014-07-16 11:28:41

标签: java eclipse maven

我尝试在使用Maven创建的Java项目中使用以下代码读取属性文件ArchetypeId = maven-archetype-quickstart

(properties = new Properties()).load(DbCopy.class.getClassLoader()
   .getResourceAsStream("config.properties"));

它抛出异常:

Exception in thread "main" java.lang.NullPointerException
  at java.util.Properties.load(Properties.java:284)
  at benz.bnp.db.DbCopy.main(DbCopy.java:77)

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

如果目标文件夹包含属性文件,请查看目标文件夹。希望它不会包含。要包含您的属性文件,请编辑您的pom:

<build>        
<resources>
                        <resource>
                            <directory>${project.basedir}/src/main/java</directory>
                            <filtering>true</filtering>
                            <includes>
                                <include>**/*.properties</include>
                            </includes>
                        </resource>
     </resources>
</build>

将其添加到您的POM.xml并为您的属性文件配置相同的内容。

答案 1 :(得分:1)

另一种解决方案:

  1. 右键单击Eclipse中的Project
  2. 选择构建路径 - &gt;配置构建路径
  3. 在“来源”标签中:在&#34;包含&#34;中添加** / *。属性for&#34; src / main / java&#34;。
  4. 问题是:maven-archetype-quickstart只在&#34; Included&#34;中设置** / * .java。列表。

答案 2 :(得分:-1)

假设config.properties位于src/main/resources之下,请尝试以下操作:

Properties props = new Properties();
try(InputStream resourceStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("config.properties")) {
    props.load(resourceStream);
}