springboot打包jar后读取资源文件(本人项目实测有效)

springboot打包jar后读取资源文件(本人项目实测有效)

背景
springboot项目下netty应用证书,需要加载证书文件。在idea中正常运行,但是打包成jar包却报错,提示找不到文件。说来惭愧,这个问题搞了一上午(虽说有其他问题干扰)但是也觉得尴尬。。。遂记录之

原因分析
初始使用的是getFile(),由于打包成jar后。这个绝对路径实际是不存在的。
 

InputStream is=new FileInputStream( (new ClassPathResource("certs/clientCerts.jks")).getFile() );

解决方案
采用流的方式,使用getInputStream()

InputStream is=new ClassPathResource("certs/clientCerts.jks").getInputStream();

你可能感兴趣的:(spring,boot,jar,后端)