项目导出为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);
相关推荐
众链网络11 小时前
Agent 的成本大头不在“写“,在“判断“:拆解专用决策模型的三层架构
java·开发语言·人工智能·微服务
周小董12 小时前
[1371]jdk管理工具
java·开发语言
青春逝如流水12 小时前
Java 中线程的创建方式:从基础到现代
java·开发语言·多线程·ai文章
Peregrine912 小时前
C++ - > 类和对象
java·c++·算法
2501_9339232512 小时前
SpringCloud组件:Eureka服务注册与发现
java·开发语言·后端·spring cloud·eureka
Wang's Blog12 小时前
Java 中间件之 RabbitMQ 快速入门: SpringAMQP 消息转换器
java·中间件·java-rabbitmq
Re_zero13 小时前
一次 SSE 断流排查:PrintWriter 吞掉了我的 IOException
java·后端
我是人✓13 小时前
Java核心语法:作用域、循环与大数值处理
java·开发语言·后端
夜之眷属14 小时前
PriorityQueue:for-each 遍历和 poll 取出,顺序一样吗?
java·服务器·数据结构·后端·算法
蜗牛互联网14 小时前
Java标准HTTP调用多模态模型的票据抽取前置校验
java·人工智能·python·http