项目导出为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);
相关推荐
流星白龙5 小时前
【Docker】4.NameSpace空间隔离实战
java·运维·docker
AI人工智能+电脑小能手5 小时前
【大白话说Java面试题 第207题】【09_Zookeeper篇】第8题:谈谈 ZooKeeper 的可靠性保障机制
java·zookeeper·高可用·可靠性·分布式系统
harmful_sheep5 小时前
maven多版本包导致java.lang.NoClassDefFoundError
java·maven
Mark_ZP5 小时前
【锁2】锁的分类与概念
java·
caishenzhibiao5 小时前
顺势捕猎者副图 同花顺期货通指标
java·c语言·c#
笨蛋不要掉眼泪6 小时前
RabbitMQ消息队列:SpringAMQP
java·分布式·rabbitmq
Mark_ZP6 小时前
【锁6】AQS (AbstractQueuedSynchronizer) 核心原理详解
java
AI砖家6 小时前
多商户多租户系统架构设计文档(Java版)
java·开发语言·系统架构·多租户·多商户
落苜蓿蓝7 小时前
Java 循环中对象复用导致属性覆盖?从 JVM 内存模型讲解原因
java·jvm·python
weixin_440784117 小时前
Android基础知识汇总
android·java·android studio