我尝试在使用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)
感谢您的帮助!
答案 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)
另一种解决方案:
问题是: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);
}