非web项目加载properties文件的坑

一:如何加载语法 可参考

 https://www.cnblogs.com/zhuyeshen/p/11435544.html

二:遇到的坑

a.编译器里可以读取到,但是打包后不行

写法:

 Properties properties = new Properties();
        try {
            File file=new File("src/main/resources/druid.properties");
            InputStream in = new FileInputStream(file);
            properties.load(in);

把文件路径放到系统的某个路径,路径写 绝对路径;

缺点: 换个环境,不仅要修改 文件配置,还要 为文件找个地方,项目中文件路径还要改,麻烦

b.无法读取,可能是项目运行时,资源文件没有预编译过来(就是你运行的时候,其实运行的是 class 后缀的文件)

解决办法:

在pom文件中配置下资源,记得重编译下再运行(注意路径,最好是到 Java 就够了),在路径上也遇到坑了,试了好几次,这个决定了你的资源文件打包后的位置问题

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

c.资源文件打包进去了,但还是读取不到

解决:下面两种 加载写法都试下

类名.class.getResourceAsStream("*********")
或
类名.class.getClassLoader().getResourceAsStream("*********")

注意:以上是针对打包后运行加载的,自己在编译器里跑的时候可以用 File去读取

补充:1.网上也有些说 重新 build下就好了,我自己这边是不行  2.如果你是 web项目,直接用开头链接的语法就行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值