项目导出为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);
相关推荐
云烟成雨TD16 小时前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
于慨16 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
swg32132116 小时前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
gelald16 小时前
SpringBoot - 自动配置原理
java·spring boot·后端
殷紫川16 小时前
深入理解 AQS:从架构到实现,解锁 Java 并发编程的核心密钥
java
一轮弯弯的明月16 小时前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得
chenjingming66616 小时前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
殷紫川17 小时前
深入拆解 Java volatile:从内存屏障到无锁编程的实战指南
java
eddieHoo17 小时前
查看 Tomcat 的堆内存参数
java·tomcat
那个失眠的夜17 小时前
Mybatis延迟加载策略
xml·java·数据库·maven·mybatis