项目导出为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);
相关推荐
invicinble1 天前
关于学习技术栈的思考
java·开发语言·学习
json{shen:"jing"}1 天前
分割回文串-暴力法
java·算法
没有bug.的程序员1 天前
Maven 进阶进阶:依赖优化内核、多模块构建艺术与“依赖地狱”自愈指南
java·maven·构建·多模块·依赖优化
毕设源码-赖学姐1 天前
【开题答辩全过程】以 基于Java的外卖点餐网站为例,包含答辩的问题和答案
java·开发语言
追随者永远是胜利者1 天前
(LeetCode-Hot100)4. 寻找两个正序数组的中位数
java·算法·leetcode·职场和发展·go
追随者永远是胜利者1 天前
(LeetCode-Hot100)2. 两数相加
java·算法·leetcode·go
前路不黑暗@1 天前
Java项目:Java脚手架项目通用基类和常量类的封装(九)
java·spring boot·笔记·学习·spring cloud·maven·intellij-idea
Mr YiRan1 天前
C++语言类中各个重要函数原理
java·开发语言·c++
chilavert3181 天前
技术演进中的开发沉思-370:final 关键字(上)
java·开发语言
一切顺势而行1 天前
python 文件目录操作
java·前端·python