在Linux运行没问题,但是在docker中运行程序,报错:could not initialize class sun.awt.X11FontManagager

【 现象】

        在 Docker 中运行 Java 应用程序时,如果遇到 could not initialize class sun.awt.X11FontManager 的错误。

【原因分析】

        出现这种问题,通常与图形环境有关,因为这个类依赖于 X11 图形系统,但Docker中不存在对应图形化环境有关的环境。

【环境说明】

        操作系统:Kylin V4(aarch64)

        JDK版本:openJDK 1.8.0

        Docker容器:docker 27.3

【解决方案及效果】

        (1)第一步,使用无头模式

        无头模式允许 Java 应用程序在没有图形环境(如 X11)的情况下运行,避免了对图形库的依赖。如果应用程序不需要图形界面,可以在 Docker 中以无头模式运行 Java。可以通过设置系统属性来实现,如下:

java -Djava.awt.headless=true -jar your-application.jar

        但在使用以上方案之后,依旧报错。

你可能感兴趣的:(Docker,FontConfig,EasyExcel,空指针)