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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM