SpringBoot 的平常开发中,咱们会发现当咱们使用 InputStream input = getClass.getResource(path) 读取文件或者模板时,在 ida 中运行服务器
测试的时候一点问题没有,可是打成 JAR 包部署到服务器上以后,文件的读取的结果将不存在,解压 jar 包发现文件时在里面的,这是怎么一会事呢?ide
由于,在 idea 中启动时,项目在操做系统下是一个目录,目录下的文件能够正常访问,可是打包以后是一个压缩吧,访问压缩包中的文件,以上方式是不可行的测试
这时咱们能够将以上语句修改成下面两种方式,平常开发中也推荐使用 2 的方式,该方式在未打包的时候也是有效的,不须要改来改去idea
1,读取文件时使用 => InputStream input = getClass.getResourceAsStream(path)spa
2,也能够选择 => InputStream input = new ClassPathResource(path).getInputStream()操作系统