【Java】jar启动的java程序报错FileNotFoundException
2023-06-13 09:14:11 时间
前言
做了个周报系统,用来生成周报,维护周报,遇到了模板文件找不到的问题,死活不行,下面是报错信息
java.io.FileNotFoundException: class path resource [templates/weeklyrep/content/weelyrep_2.xlsx] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/home/weekely.jar!/BOOT-INF/classes!/templates/weeklyrep/content/weelyrep_2.xlsx
因为周报系统是使用jar
启动,报错内容为无法正确的映射路径,也是情有可原,直接运行是没问题的。
错误代码
ClassPathResource classPathResource = new ClassPathResource("templates/weeklyrep/content/weelyrep_2.xlsx");
String templateFileName = null;
try {
templateFileName = classPathResource.getFile().getAbsolutePath();
} catch (IOException e) {
e.printStackTrace();
}
String filename ="weekely.xlsx";
String downloadPath = RuoYiConfig.getDownloadPath() + filename;
ExcelWriter excelWriter=EasyExcel.write(downloadPath).withTemplate(templateFileName).build();
正确代码
ClassPathResource classPathResource = new ClassPathResource(pathStr);
InputStream fio=null;
try {
fio=classPathResource.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
String filename ="weekely.xlsx";
String downloadPath = RuoYiConfig.getDownloadPath() + filename;
ExcelWriter excelWriter=EasyExcel.write(downloadPath).withTemplate(fio).build();
直接使用ClassPathResource
的getInputStream()
,不使用File
即可解决
参考
springboot 中File获取resources目录下静态资源找不到文件问题FileNotFoundException(No such file or directory)
相关文章
- java解析xml方法_详解Java解析XML的四种方法
- 编写java判断闰年_用Java程序判断是否是闰年的简单实例[通俗易懂]
- java运行环境_如何搭建Java运行环境?
- java启动器_JAVA基础:Java 启动器如何查找类
- xml格式化 java_Java XML格式化程序
- eclipse运行java程序_如何在Eclipse中运行简单的Java程序?「建议收藏」
- uint32 java_关于Java的int和C的uint32之间的转换
- java+sm4+加密算法_SM4加密算法实现Java和C#相互加密解密
- 运行参数Linux 下修改 Java 运行参数的指南(linux修改java)
- 解决Linux下重启Java程序的方法(linux重启java)
- Linux下快速运行Jar程序的方法(linux运行jar程序)
- 数据库Java连接MySQL数据库实现数据添加(java添加mysql)
- Linux下部署Java项目实践(linux部署java项目)
- 解压Linux环境下的JAR文件(linux解压.jar)
- 程序Linux命令调用Java程序实现交互(linux命令java)
- Java高效操作MySQL数据库(java写入mysql)
- Java实现Redis数据写入(java写入redis)
- 环境的基础Linux:Java环境的支撑者(linux是java)
- 实现Java实现Redis锁的研究与应用(redis锁java)
- 教程:在Linux系统下安装Java(linux下java安装)
- 在Linux上实现Java程序的运行(linux运行java程序)
- Java程序在Linux系统中实现命令操作(java运行linux命令)
- Java革命Oracle旗下的程序设计利器(java简介oracle)
- Oracle数据库中运行Java程序的简易指南(oracle中写java)
- 利用Redis锁实现Java程序并发控制(redis锁java实现)