报错原因
更换基础镜像后,使用 easy excel 报错:Could not initialize class sun.awt.X11FontManager。
com.alibaba.excel.exception.ExcelGenerateException: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager
at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:65)
at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:70)
如何解决
查阅资料、通过实验得知,以下两个条件缺一不可:
- 在 Java 代码中设置 headless 模式:System.setProperty("java.awt.headless", "true")。
- 在 Dockerfile 中安装缺失字体:RUN apt install fontconfig ttf-dejavu -y。