springboot以jar包启动时resoure/static目录文件加载的问题

springboot以jar包启动时resoure/static目录文件加载的问题


springboot项目的resource/static目录下的文件,如想在后台java代码中读取可以使用ClassPathResource这个类来加载,否则会出现资源访问不到的问题

问题重现

springboot以jar包启动时resoure/static目录文件加载的问题
springboot以jar包启动时resoure/static目录文件加载的问题
如上图所示,在ide中启动,以上代码不会报错,但是在打包成jar包后,以java -jar **.jar的方式启动时,就会包文件找不到的错误

问题分析

打开jar包一看,发现目录结构如下
springboot以jar包启动时resoure/static目录文件加载的问题
资源文件在BOOT-INF的目录下,难怪找不到

问题解决

所以还是使用spring自己提供的一套资源读取的工具吧,如下所示
springboot以jar包启动时resoure/static目录文件加载的问题
这样,不管在ide里启动,还是jar包启动,都可以访问了