Springboot ResourceUtils.getFile返回路径出错

lyfuci 2017-11-27 05:56:43
项目写完了,自己也简单的测试了一下没问题,但打成Jar包之后就出现问题了,没有办法加载配置文件,具体的问题是这样的:
在代码中用Spring的ResourceUtils.getFile()得到某一配置文件,代码具体如下:

File abcXml= org.springframework.util.ResourceUtils.getFile("classpath:abc.xml");

在intellij中间运行的时候没有问题,但是打成jar包之后出现了如下错误


Caused by: java.io.FileNotFoundException: class path resource [abc.xml] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/D:/Users/Sean/IntellijProject/abc/target/abc.jar!/BOOT-INF/classes!/abc.xml


好像问题就是classes目录后居然有一个!叹号,但是classes并不是一个压缩文件,只是一个文件夹呀!
用的 spring-boot-starter版本是1.5.2.RELEASE,换了几个其他的版本也没什么用,求大佬指教!
...全文
2673 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
eijud 2018-02-24
  • 打赏
  • 举报
回复 1
ResouceUtils.getFile()是专门用来加载非压缩和Jar包文件类型的资源,所以它根本不会去尝试加载Jar中的文件,要想加载Jar中的文件,可以用流的形式读取读取,比如 xx.class.getClassLoader().getResouceAsStream()或者InputStream inputStream = new ClassPathResource(fileName).getInputStream() 也可参见:https://www.cnblogs.com/chyu/p/8407541.html
胖胖赵 2017-12-21
  • 打赏
  • 举报
回复
目前也遇到该问题,请问楼主解决了吗?有哪位大神能提供一下有效的解决方案,O(∩_∩)O谢谢
qq821582717 2017-12-11
  • 打赏
  • 举报
回复

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧