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();