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