docker中OpenJDK excel无法导出 java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion

1.背景说明:

本地使用的是jdk1.8版本功能可正常使用,当通过docker打包镜像部署到linux环境下(openJDK1.8)后无法导出excel,报初始化是否,空指针异常,报错如下:
在这里插入图片描述

2.原因:

openjdk比jdk1.8简化了一些功能,所以用docker打包的时候更小。excel导出时初始化失败就是因为fontconfig组件就被简化了。

3.解决方案:

docker打包镜像时下载fontconfig组件即可解决

第一步:Linux Centos系统 下载fontconfig组件

yum install fontconfig

第二步:打包镜像时添加下载命令

RUN apk add --update font-adobe-100dpi ttf-dejavu fontconfig

如下截图:
在这里插入图片描述
打包镜像时会打印如下日志(下载可能会比较慢):
在这里插入图片描述
4.然后重启docker

docker restart 容器ID或容器名

5.打包时发现下载的特别慢,解决方案:切换阿里镜像

RUN echo -e 'https://mirrors.aliyun.com/alpine/v3.6/main/\nhttps://mirrors.aliyun.com/alpine/v3.6/community/' > /etc/apk/repositories \
 && apk update \
 && apk upgrade \
 && apk --no-cache add ttf-dejavu fontconfig

最终配置如下:
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐