Springboot 打成 jar 包后,找不到 resourc

2023-09-18  本文已影响0人  愤怒的阿昆达

Springboot 打成 jar 包后,找不到 resource 下的文件,路径出现感叹号

错误:

file:/opt/xxx/AppXXX.jar!/BOOT-INF/classes!/static/template/Word.docx (No such file or directory)

场景:

本地开发时,好好的。。
打成jar包发到线上,报错找不到resource下的模板文件了。。。
出现错误的代码:

String path = ClassUtils.getDefaultClassLoader().getResource("static/Word.docx").getPath();
FileInputStream fileInputStream = new FileInputStream(path);

解决:

InputStream fileInputStream = ClassUtils.getDefaultClassLoader().getResourceAsStream("static/Word.docx");

原因:

本地开发时,项目环境是文件夹,确实可以用 getResource 拿到 文件夹中的文件和路径
打成jar包启动后,jar是个文件不再是文件夹,所以想拿到资源文件必须用的方式,getResourceAsStream

上一篇下一篇

猜你喜欢

热点阅读