项目导出为jar遇到java.io.IOException: Problem reading font data

Maven项目导出为jar后运行测试,发现本地IDE可以运行的项目使用jar无法运行,出现

shell 复制代码
java.io.IOException: Problem reading font data

网上搜索发现问题大都由于找不到对应的资源,经过最终调试问题解决,附代码:

【修改前】
字体存放路径: src/main/resources/fonts/QingNiaoxingshu.ttf

java 复制代码
File fontFile = new File("src/main/resources/fonts/QingNiaoxingshu.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, fontFile ).deriveFont(60f);

【修改后】
项目在jar中无法直接访问获取,但可以通过其他方法从jar中获取资源文件,原路径对应jar访问路径:fonts/QingNiaoxingshu.ttf (fonts前不加/)

java 复制代码
InputStream awardFontFile = getClass().getResourceAsStream("fonts/QingNiaoxingshu.ttf");
Font awardFont = Font.createFont(Font.TRUETYPE_FONT, awardFontFile).deriveFont(120f).deriveFont(Font.BOLD);
相关推荐
爱敲代码的TOM9 小时前
10.27 易购软件 Java开发线下一面
java·开发语言
yuzhiboyouye9 小时前
String、StringBuilder、StringBuffer 区别(面试题)
java
斯维赤9 小时前
微信步数的10点定时推送,看似简单,实则暗藏玄机
java·后端
Linux_cy9 小时前
服务器管理方案选型:面板 / SSH 客户端 / 桌面型客户端怎么选
java·linux·运维·服务器·ssh·可视化·gmssh
可乐_不渴9 小时前
【Linux】 进程虚拟地址空间
java·linux·javascript
SimonKing10 小时前
号外号外,Stream-Nexus推送项目支持集群部署了
java·后端·程序员
vipxieliang10 小时前
ValidX vs 正则表达式:可读性与维护性对比
java·spring boot
3378010 小时前
5分钟搞懂登录认证和授权框架Spring Security
java·spring boot
vipxieliang10 小时前
Spring Security 6.x 实战:认证、授权与 JWT 集成
java·spring boot
world781122610 小时前
【C++】set 和 map
java·前端·c++·set·map