Alpine Linux中OpenJDK无法使用字体控件(fontconfig)

问题背景

最近在使用hutool工具类提供Excel生成功能 开发一个数据导出的需求,在本地调试无问题,可以正常生成Excel文件;
但部署到线上测试环境则报错调用sum.awt出现报错。

java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion

问题分析

笔者的线上环境使用

  • docker
  • alpine linux v3.9
  • openjdk:8-jre-alpine

在经过一些google,可以确定两个问题:1)openjdk不包括sum.awt 的字体控件;2)alpine linux v3.9的基础镜像也未安装有 fontconfig 和 ttf-dejavu字体。

解决方案

1) 将openjdk更换成oraclejdk。但考虑到商业授权的问题,因此不更换,仍使用openjdk。
2)再dockerfile构建文件中,安装 fontconfig 和 ttf-dejavu字体。

FROM openjdk:8-jre-alpine

# 安装 fontconfig 和 ttf-dejavu字体
RUN apk add fontconfig
RUN apk add --update ttf-dejavu
RUN fc-cache --force
posted @   GZ-Kevin哥  阅读(3242)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示