springboot后端项目做某个功能时需要读取根目录下的. doc文件,具体项目中路径如下:
开始是通过绝对路径读取文档,在本地没有任何问题。
但是讲项目打成jar包部署到测试环境发现无论怎样都读取不到,然后在本地运行jar包出现同样的情况。
捕获异常:java.io.FileNotFoundException
[org.apache.ibatis.session.defaults.DefaultSqlSession@55b40849]
引用>
java.ioFileNotFoundException:类路径的资源(静态/* * * *。doc)无法解决绝对文件路径,因为它不驻留在文件系统:jar:文件:/D:/* */* * */目标/* * * * 0.0.1-snapshot.jar !/BOOT-INF/类!/静态/* * * * . doc原因:
此时运行中的Java程序其实是在读取jar包中的文件,直接使用下面的方式是不行的:常见的获取路径写法://例子比如文件路径主要src \ \ \静态资源\ * * * . doc 字符串路径=this.getClass () .getClassLoader () .getResource (" ") .getPath() +“静态/* * * . doc”; 文件文件=新文件(路径),在java中,如果应用打成jar包后,应用运行后需要读取本jar包之内的文件,更换写法:
通过类加载器的getResourceAsStream方法,让jar读取到自己的资源文件 .getResourceAsStream .getClassLoader InputStream InputStream=this.getClass()()(“静态/* * * . doc”);即可。
到此这篇关于springboot项目打成jar包后无法获取静态下的静态资源文件的问题分析的文章就介绍到这了,更多相关springboot打成jar包无法获取静态资源文件内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
springboot项目打成jar包后无法获取静态下的静态资源文件的问题分析