You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于ubi8/openjdk-8-runtime镜像在OpenShift部署Java应用遇FontConfiguration错误

解决Jasper报表在OpenShift中运行的FontConfiguration空指针问题

一、在ubi8/openjdk-8-runtime中安装ttf-dejavu

UBI8系列镜像使用dnf包管理器(而非apk/apt),你需要通过构建自定义镜像来安装字体:

  • 创建Dockerfile:
FROM registry.access.redhat.com/ubi8/openjdk-8-runtime

USER root
# 安装ttf-dejavu并清理包缓存以减小镜像体积
RUN dnf install -y ttf-dejavu && dnf clean all
# 切回镜像默认的非root用户,符合OpenShift的安全约束
USER 185
  • 构建并推送这个自定义镜像到你的镜像仓库,再在OpenShift中部署即可。

二、推荐认证替代镜像

如果不想自定义镜像,可直接使用以下Red Hat或quay.io的官方认证镜像:

  • registry.access.redhat.com/ubi8/openjdk-11-runtime:基于UBI8的OpenJDK 11运行时镜像,默认包含基础字体支持,适合可迁移到JDK 11的场景
  • quay.io/redhat-openjdk-18/openjdk8-openshift:Red Hat官方维护的OpenJDK 8镜像,针对OpenShift优化,内置了字体配置等必要依赖,可直接用于Jasper报表生成

注:原错误java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion是因为JDK无法找到可用系统字体,安装ttf-dejavu或使用自带字体支持的镜像即可解决。

内容的提问来源于stack exchange,提问作者akarahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 17:17:06