SpringBoot打成jar后无法读取根路径和文件

摘要:
记录一下getContextClassLoader().getResource()之坑FileNotFoundException。

记录一下getContextClassLoader().getResource()之坑FileNotFoundException

今早部署代码到测试环境之后,测试需求的时候出现了FileNotFoundException,发现是获取字体路径的时候报错了,很奇怪,在本地调试的时候并未发现此问题。
错误日志:

	Caused by: java.io.FileNotFoundException: /opt/supplier_web/supplier_web.jar!/BOOT-INF/lib/supplier_web.web-0.0.1.jar!/font/simsun.ttf (No such file or directory)

SpringBoot打成jar后无法读取根路径和文件第1张

问题代码如下:

SpringBoot打成jar后无法读取根路径和文件第2张

排查发现问题如下:

这是因为打包后Spring试图访问文件系统路径,但无法访问JAR中的路径。

解决办法:

使用ClassPathResource解决问题。
SpringBoot打成jar后无法读取根路径和文件第3张

免责声明:文章转载自《SpringBoot打成jar后无法读取根路径和文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇POJ 3028 Shoot-out(概率DP)mybatis源码分析(5)-----拦截器的实现原理(动态代理+责任链)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

摆脱学校机房教师端控制的方法汇总

或者你可以手动设置宽带连接,这样计算机可以自动获得另一个IP,以摆脱教师方的控制。在许多情况下,您可以通过这种方式连接计算机室中的计算机。有关PE的介绍,请参见:http://www.cnblogs.com/shenjieblog/p/5138846.html例如:有些计算机,例如我们学校计算机室的计算机,使用软件保护卡。我发现安全模式和PE都不能在这个测试...

win10局域网共享报错:不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接

计算机A:共享者(本地文件库);共享访客(工作计算机);计算机A打开另一个帐户-aaa,密码-aaa123。开始文件共享后,计算机B单击网络,发现计算机A已连接。输入帐户密码后,将弹出以下错误。不允许用户使用多个用户名多次连接到服务器或共享资源:断开与此服务器或共享的资源的所有连接。在此链接之前:存在现有连接,或者在建立连接时,现有网络环境已更改,导致帐户被...

vue cli3.0 打包静态文件目录的配置

默认情况下,vuecli3.0打包生成的文件也会作为cli2.0在dist目录中生成,但css、js和img等静态文件不会像cli2.0那样放在静态文件夹中。您需要修改vue.config.js:module的几个配置变量。exports={publicPath:“dist”,//输出文件目录lintOnSave:false,//保存时eslint检查ass...

windows 常用命令行操作

目录操作˃pwd打印当前工作目录,通过此关键词可以查看当前所处的路径˃cd更改目录,用于多个目录之间的切换具体输入:cd目录名cd目录名/子目录名(可通过此方式到达最底层的目录)cd~(返回home目录)cd..(返回上一级目录)cd../..(返回上两级目录)cd盘符名:(不同盘符间跳转,cd后面跟上路径则可实现精准跳转)˃mkdir创建目录具体输入:mk...

json文件 乱码问题 根本解决办法

1工具→ 定制2单击命令选项卡;3选择上部单选区域中的菜单栏,然后从下拉列表中选择文件;4单击“添加”命令5,在类别中查找文件,找到右侧的高级保存选项,然后单击“确定”6,通过向下移动来调整“文件”菜单中选项的位置。如果你有任何问题,请留言!...

HTML中canvas的大小调整

今天用到canvas元素,发现它的大小不是像普通dom元素一样,直接设置css样式可以改变的,它会由自己原本的大小伸缩。例如,1.如果直接在canvas元素中添加style='300px;height:300px',这会导致伸缩,如图2.换种方式在css样式表中加入样式设置宽高产生的效果也是一样的。...