尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

解决在spring boot打成jar包后读取resource下资源文件抛出 java.io.FileNotFoundException

解决在spring boot打成jar包后读取resource下资源文件抛出 java.io.FileNotFoundException
📅 发布时间:2026/7/28 18:37:44

解决在spring boot打成jar包后读取resource下资源文件抛出 java.io.FileNotFoundException

具体报错如下:file:/data/XXX/xxxx.jar.!/BOOT-INF/classes!/configs/xxxxx.xlsx(No such file or directory),

开发环境spring boot2.15
需求:在resource下需要提供一套excel,world格式供前端下载模板

String file = "static/人员基础信息导入模板.xlsx"; BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(file)); OutputStream outputStream = response.getOutputStream();

这种读取方式只能在本地运行项目的时候使用,一旦发布项目(打包成jar)在调用这个接口时候会出现file:/data/XXX/xxxx.jar.!/BOOT-INF/classes!/configs/xxxxx.xlsx(No such file or directory);异常

完整代码可以直接使用

@GetMapping("/personnel/downloadTemplate") public void downloadLocal(HttpServletResponse response) throws IOException { /** 获取静态文件的路径 */ String path = "static/人员基础信息导入模板.xlsx"; /** 获取文件的名称 . 用来进行编码*/ String fileName = "人员基础信息导入模板.xlsx"; /** 将文件名称进行编码 */ response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); response.setContentType("content-type:octet-stream"); /* .getClassLoader() 方法是在静态文件路径添加一个/ */ InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(path); OutputStream outputStream = response.getOutputStream(); try { byte[] buffer = new byte[1024]; int len; assert inputStream != null; while ((len = inputStream.read(buffer)) != -1) { /** 将流中内容写出去 .*/ outputStream.write(buffer, 0, len); } }catch (IOException e){ e.printStackTrace(); }finally { assert inputStream != null; inputStream.close(); outputStream.close(); } }

如还有问题可以评论留言!
如果解决了你的问题,请右上角给点个赞。

相关新闻

  • 如何快速实现Windows 11任务栏歌词:Taskbar-Lyrics完整指南
  • 2026地坪漆品牌哪家性价比高?权威测评+场景适配攻略+避坑FAQ大全 - 商业大观
  • axure原型的使用

最新新闻

  • 2026北京钻石回收|想高价变现,这几个坑千万别踩 - 奢侈品回收评测
  • 现代C++:数字计算:介绍线性代数和数值计算库
  • 控件小结
  • 零SQL基础也能轻松管理数据库:DB Browser for SQLite终极指南
  • 高效Python量化交易框架:pyctp CTP接口封装技术深度解析
  • iptables/nftables 防火墙实战:从入门到企业规则集

日新闻

  • 力旷智能:伺服驱动系统在制药收瓶设备中的应用解析
  • 2026 网安入门避坑指南,零基础如何避开无效学习直接上手实战
  • 揭秘CFC项目:如何通过手机摄像头实现850kbps无网络文件传输

周新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号