IDEA中maven项目读取properties配置文件异常解决方法

复现

在javase复习第四弹的反射案例中,运行框架测试类后会有空指针异常。

//1.加载配置文件
//1.1创建properties对象
Properties properties = new Properties();
//1.2加载配置文件,转换为集合
//1.2.1获取配置文件
InputStream rs = ReflectTest.class.getClassLoader().getResourceAsStream("pro.properties");
properties.load(rs);
//2.获取配置文件中定义的数据
String className = properties.getProperty("className");
String methodName = properties.getProperty("methodName");
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 reflect.ReflectTest.main(ReflectTest.java:20)

分析

在配置properties文件时出现空指针异常基本是由于读取不到配置文件导致的。

会不会是我的配置文件路径写错了么,我在编辑器界面时按住Ctrl加鼠标左键时是可以打开pro,properties文件的,所以排除掉文件路径的问题

查找资料

经过在网上的多处查询后

定位到了可能是使用了maven出现的问题

原因是生成的项目中没有生成相关的的配置文件,导致读取不到,所以通过pom文件去设置路径

解决方法

在maven工程中打开pom.xml

加入以下标签即可

<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.tld</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>
posted @   konley  阅读(1205)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示