场景:springboot项目,有一个下载文件接口。获取文件路径是这样的
InputStream inputStream = new FileInputStream(System.getProperty("user.dir") + "/src/main/resources/template/template.xls");
这样项目在本地跑一切ok。但是在部署到服务器时候发生异常,找不到文件
稍加思索。还是路径不对,因为项目是jar包,jar是个文件,不是一个文件夹,所以通过这种文件地址访问不到!
解决方法
把获取文件地址的方式改变一下
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("template/template.xls");
如果这种方式报空指针异常或者你不知道路径怎么写,那么用这种方式
System.out.println(this.getClass().getClassLoader().getResource("").getPath());
查看项目根据的路径,然后根据文件位置写出路径,注意是jar包内文件的地址,jar包可以用解压软件打开。
2019-02-13二次修改,附图