spring项目的jar包中读取classpath下的文件

在springboot项目resources文件夹下,加入一个其他类型的资源文件,比如一个test.txt文件,为实现类似启动加载,实现了CommandLineRunner 接口,这个接口是spring初始化完成后最后一个回调函数。

新加的文件内容如下,pom文件打包使用的配置如下。

spring项目的jar包中读取classpath下的文件

spring项目的jar包中读取classpath下的文件

在idea中运行正常。

spring项目的jar包中读取classpath下的文件

打为jar包,直接启动报错:

spring项目的jar包中读取classpath下的文件

由报错可知,找不到我加入的文件。

这个情况是因为在jar包中,无法获取具体文件路径,只能通过spring提供的流的形式读取。

spring项目的jar包中读取classpath下的文件

修改为读取流的形式即可,测试如下:

spring项目的jar包中读取classpath下的文件