java properties配置文件空指针异常问题解决

properties配置文件空指针异常问题解决

最近在写JDBC,在对JDBC类进行封装的过程中出现了properties空指针异常。话不多说,贴代码。

static {
        try{
            System.out.println(JdbcUtil.class.getClassLoader().getResource("").getPath());
            InputStream inputStream=JdbcUtil.class.getClassLoader().getResourceAsStream("db.properties");
            Properties properties=new Properties();
            properties.load(inputStream);
            driver=properties.getProperty("driver");
            url=properties.getProperty("url");
            usename=properties.getProperty("usename");
            password=properties.getProperty("password");
            Class.forName(driver);
        }catch (Exception ex){
            ex.printStackTrace();
        }

我的资源配置文件

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf8&useSSL=true
usename=root
password=123456

将properties文件放在src根目录下
在这里插入图片描述
但是出现了空指针异常,找不到properties文件位置,但是经百度,发现properties文件需要放在src根目录下,但是还是报错空指针,如下图。
在这里插入图片描述
在搜不到原因的情况,通过代码查找具体会去那里查询文件的位置,

System.out.println(JdbcUtil.class.getClassLoader().getResource("").getPath());

在这里插入图片描述
发现查找到的文件位置,是在maven自动生成的target文件夹下的class文件。
因此只需要将properties配置文件移到maven自动生成的target文件夹下的class文件夹下,就能解决空指针异常。
完美解决,解决了给个赞吧,xdm!
在这里插入图片描述

当然这种自己移动的方法也太sb了,推荐以下方法

<build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

再pom.xml文件的build模块下插入以下代码,就可以将文件成功打包到maven的target文件下。完美解决!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值