+-
Excel 导出,字体不支持
首页 专栏 java 文章详情
0

Excel 导出,字体不支持

逸远尘红 发布于 1 月 18 日

问题背景

最近一个数据导出的功能开发完成后,本地调试一切正常,但发布到服务器上之后,就提示如下异常:

java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager
服务器系统:Alpine Linux 3.8 JDK 版本: openJDK 1.8.0_181

解决过程

查询资料后发现,是因为 Alpine 系统缺少字体相关的依赖(ttf-dejavu fontconfig),在 k8s pods 中尝试手动安装,接口依旧报错

Makefile 中添加以下命令

RUN apk add --update ttf-dejavu && rm -rf /var/cache/apk/*

依旧报错

之后通过 google 在 stack overflow 上发现一个提问,表述的是同样的问题,解答中给出的解决方案是回退 openJDK 版本,在和同事对齐之后,决定更换 docker base image

问题解决

调整 docker 基础镜像,采用以下配置后,功能正常

服务器系统: Alpine Linux 3.4 JDK 版本: openJDK 1.8.0_111

参考链接

https://github.com/alibaba/ea...
https://stackoverflow.com/que...
https://gitlab.alpinelinux.or...
https://www.jianshu.com/p/409...

linux java 容器 docker 后端
阅读 140 更新于 1 月 18 日
赞 收藏
分享
本作品系原创, 采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
avatar
逸远尘红
1 声望
2 粉丝
关注作者
0 条评论
得票 时间
提交评论
avatar
逸远尘红
1 声望
2 粉丝
关注作者
宣传栏

问题背景

最近一个数据导出的功能开发完成后,本地调试一切正常,但发布到服务器上之后,就提示如下异常:

java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager
服务器系统:Alpine Linux 3.8 JDK 版本: openJDK 1.8.0_181

解决过程

查询资料后发现,是因为 Alpine 系统缺少字体相关的依赖(ttf-dejavu fontconfig),在 k8s pods 中尝试手动安装,接口依旧报错

Makefile 中添加以下命令

RUN apk add --update ttf-dejavu && rm -rf /var/cache/apk/*

依旧报错

之后通过 google 在 stack overflow 上发现一个提问,表述的是同样的问题,解答中给出的解决方案是回退 openJDK 版本,在和同事对齐之后,决定更换 docker base image

问题解决

调整 docker 基础镜像,采用以下配置后,功能正常

服务器系统: Alpine Linux 3.4 JDK 版本: openJDK 1.8.0_111

参考链接

https://github.com/alibaba/ea...
https://stackoverflow.com/que...
https://gitlab.alpinelinux.or...
https://www.jianshu.com/p/409...