当前位置: 首页 > 编程笔记 >

springboot项目打成jar包后无法获取static下的静态资源文件的问题分析

谢烨烨
2023-03-14
本文向大家介绍springboot项目打成jar包后无法获取static下的静态资源文件的问题分析,包括了springboot项目打成jar包后无法获取static下的静态资源文件的问题分析的使用技巧和注意事项,需要的朋友参考一下

springboot 后端项目 做某个功能时 需要读取根目录下的.doc文件,具体项目中路径如下:

开始是通过绝对路径读取文档,在本地没有任何问题。
但是 讲项目打成jar包 部署到测试环境发现无论怎样都读取不到,然后在本地运行jar包出现同样的情况。

捕获异常:java.io.FileNotFoundException

[org.apache.ibatis.session.defaults.DefaultSqlSession@55b40849]
java.io.FileNotFoundException: class path resource [static/****.doc] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/D:/**/***/target/****-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/static/****.doc

原因:
此时运行中的Java程序其实是在读取jar包中的文件,直接使用下面的方式是不行的:

常见的获取路径写法:
//例子 比如文件路径 src\main\resources\static\***.doc
String path = this.getClass().getClassLoader().getResource("").getPath()+"/static/***.doc";
File file = new File(path);

在java中,如果应用打成jar包后,应用运行后需要读取本jar包之内的文件,更换写法:

通过类加载器的getResourceAsStream方法,让jar读取到自己的资源文件
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("static/***.doc");

即可。

总结

到此这篇关于springboot项目打成jar包后无法获取static下的静态资源文件的问题分析的文章就介绍到这了,更多相关springboot打成jar包无法获取静态资源文件内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍Springboot项目打war包docker包找不到resource下静态资源的解决方案,包括了Springboot项目打war包docker包找不到resource下静态资源的解决方案的使用技巧和注意事项,需要的朋友参考一下 前一段时间遇到一个问题,是关于读取项目中文件资源的问题。我是一个maven工程 我把一张照片放到resource下面,然后在本地读取的时候可以读取到,但是一

  • 更新:我想让媒体播放器是静态的,但是如果我设置为静态的,它就不工作了。请注意,我想要mediaPlayer static的原因是我想从其他类访问它。(台词评论。)这是我的代码: 我的代码的任何其他修复将不胜感激。顺便说一下,这些是我得到的错误: 线程“Thread-0”中出现异常Java . lang . illegalstateexception:Toolkit未在com . sun . Jav

  • 本文向大家介绍maven+springboot打成jar包的方法,包括了maven+springboot打成jar包的方法的使用技巧和注意事项,需要的朋友参考一下 maven的命令: 1.mvn clean package -DskipTests:在项目目录下运行此命令,在target目录下生成jar包或war包。 2.mvn clean:清理项目生产的临时文件,一般是模块下的target目录 3

  • 我有一个war文件的版本构建,假设app-1.0.war部署到Tomcat 7.0.32(是的,我知道它很旧,它是一个遗留应用程序,目前我希望EC2实例尽可能靠近现有服务器),JDK是1.7.0_07。在这两种环境中都有相同的构建。 旧的操作系统是SLES(SUSE Linux Enterprise Server),而在AWS中,我们使用的是Ubuntu16.04.3LTS。 在这两种环境中,区域

  • 启动jar时,控制台会说找不到文件,也没有加载字体。我怎样才能解决这个问题? 我得到了这个密码:

  • 本文向大家介绍详解eclipse将项目打包成jar文件的两种方法及问题解决方法,包括了详解eclipse将项目打包成jar文件的两种方法及问题解决方法的使用技巧和注意事项,需要的朋友参考一下 第一种:利用eclipse中自带的export功能 第一种方法分两种情况先来看第一种情况:没有引用外部jar的项目打包 步骤一:右键点击项目选择导出(export),选择java>jar文件(不是选择可运行j

  • 我很难弄清楚这个问题,我几乎什么都试过了。 我希望我的程序从Jar文件中读取两个资源,并且它将在eclipse中运行良好。但是当我从命令提示符运行jar时,它会给出空指针异常。 结构: src/main/java/App。JAVA src/main/resources/properties/application。属性 src/main/resources/spring/applicationCo

  • 我知道网上有很多这样的问题(特别是这里),但没有什么能真正帮助我解决问题。我正在使用spring mvc(spring version 3.1.0 Release)并且我想通过URL访问我的静态数据。 我的包: -src --main ---resources ----public 在public内部,我有一个test.xml文件。 这是我的web.xml 这是我的ServletContext.x