SpringBoot jar包内读取classPath文件

一、现象

用SpringBoot做的一个小项目。

放在linux读取resource下资源时显示:

file:/xxx.jar!/BOOT-INF/classes!/xxx.xxx (No such file or directory)

二、原因

打包成jar以后,实际上文件是存在于jar这个文件里面的资源文件,在磁盘是没有真实路径的。

所以通过其他获取磁盘路径的方式是无法获取到该文件的。

三、解决

用流的方式读取文件即可:this.getClass().getResourceAsStream("")

这个路径对应jar的classes路径。

示例代码

String path = "server.jks" ;
InputStream jksInputStream = this.getClass().getClassLoader().getResourceAsStream(path);

这个server.jks文件就在resource目录下。

猜你喜欢

转载自blog.csdn.net/wkh___/article/details/87879810
今日推荐