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();
原文地址:https://www.cnblogs.com/falcon-fei/p/11496550.html