导出代码核心部分用的是
String filePath = getClass().getResource("/static/template.xls").getPath();
FileIntputStream intputSream = new File(filePath);
上述代码在本地开发环境测试,一切正常,文件也可以正常的导出。
但是将程序打包成jar时,使用java -jar XXX.jar 启动jar,
当导出时,程序报错,
报错信息如下:
java.io.FileNotFoundException, 文件查找不到
后来经仔细对比发现,springboot框架导出的jar, resources/static下的静态文件都会被编译在BOOT-INF文件夹下
解决方案:使用spring 提供的资源加载器
ClassPathResource r = new ClassPathResource("/static/template.xls");
InputStream inputStream = r.getInputStream();
完美解决问题,
在本地开发环境和测试环境的java -jar XXX.jar 启动,都可以正常的导出文件
网友评论