class.getClassLoader().getResourceAsStream报错java.lang.NullPointerException

在编写JDBC工具类时遇到静态代码块中加载`druid.properties`资源文件报错。问题源于该文件未放置在源根目录下,导致JVM无法正确读取。解决方案是将资源文件移动到源根目录,或者调整项目结构设置,确保getClassLoader().getResourceAsStream()方法能找到文件。通过此问题,理解了资源文件路径设置对程序运行的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个问题我是在写JDBC工具类里遇到的,在静态代码块中报错。

Properties pro = new Properties();
pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));

经过网上多次搜索,这里总结一下问题原因和解决办法:

原因:源根设置的问题

解决办法:

先看一下我的druid.properties文件在哪里:

然后点开项目结构 

 然后看到红框的内容:

 我们发现,druid.properties只在src目录下,但是不在上面源文件夹,测试、资源文件夹的目录下,所以我们JVM是读取不到资源的,这很奇怪,但是这应该和getClassLoader().getResourceAsStream的实现有关系。

所以要么我们把druid.properties文件放到源根文件夹下面,要么设置一下。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值