springboot 打成jar后读取resources下面的文件

本文介绍了在Spring Boot项目中,如何处理将项目打包成JAR后无法正常读取resources目录下文件的问题。作者发现使用常规方法在JAR中无法获取文件,原因是JAR中资源的URL格式特殊。通过研究和尝试,作者找到了解决方案,包括使用特定的URL格式或配置绝对路径。虽然某些场景下修改方法会涉及大量代码改动,但配置绝对路径提供了一种简化的方法。
摘要由CSDN通过智能技术生成

1.使用idea开发过程中获取resources的路径是使用的这个方法

File file = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX + "文件名称.data");

然后就可以获取 file 获取文件进行各种操作

但是当达成jar 后发现此方法不能获取到文件

然后通过解压工具查看达成jar包,发现路径是这样的

(有时间的话可以自己断点看下这个方法获取的路径,这里不进行演示了)

对比日志后发现一样的并没有不同

唯一的不同是classes后面有一个!号 是这样classes!

jar 文件的后面也是这样有一个!

后来百度发现

在 jar 中资源有其专门的 URL 格式为: jar:!/{entry}

网上还有很多别的方式比如:

ClassPathResource cc = new ClassPathResource("文件名称.data");

ClassPathResource 和 ResourceUtils 的区别就是不用加

ResourceUtils.CLASSPATH_URL_PREFIX 也就是 classpath:

最后的解决方式:

使用

 this
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值