首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >java.lang.NoClassDefFoundError:无法使用OpenJDK 11.0初始化类sun.font.SunFontManager

java.lang.NoClassDefFoundError:无法使用OpenJDK 11.0初始化类sun.font.SunFontManager
EN

Stack Overflow用户
提问于 2021-01-12 20:07:47
回答 2查看 1.2K关注 0票数 3

自从从openjdk:11-jdk-slim迁移到OpenJDK 8到OpenJDK 11.0.9之后,我们就面临着这个错误。

代码语言:javascript
代码运行次数:0
运行
复制
java.lang.NoClassDefFoundError: Could not initialize class sun.font.SunFontManager
        at java.desktop/sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:265)
        at java.desktop/sun.java2d.SunGraphics2D.getFontMetrics(SunGraphics2D.java:869)
代码语言:javascript
代码运行次数:0
运行
复制
$ java -version
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment 18.9 (build 11.0.9.1+1)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9.1+1, mixed mode)

类似的问题已经在RedHat上注册:http://bugzilla.redhat.com/show_bug.cgi?id=1768935

然而,据我所知,我们没有使用RedHat源代码中的JDK (即使AdoptOpenJDK项目使用之前,openjdk-11项目是由他们构建和打包的……)。

EN

回答 2

Stack Overflow用户

发布于 2021-01-12 20:07:47

作为一种解决办法,我们转移到了当前基于以下版本的Amazon Coretto 11

代码语言:javascript
代码运行次数:0
运行
复制
$ java -version
openjdk version "11.0.9.1" 2020-11-04 LTS
OpenJDK Runtime Environment Corretto-11.0.9.12.1 (build 11.0.9.1+12-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.9.12.1 (build 11.0.9.1+12-LTS, mixed mode)

没有错误。

票数 1
EN

Stack Overflow用户

发布于 2021-11-01 12:38:44

对我来说,使用openjdk:11-jdk-slim docker镜像的有效方法是安装fontconfig

并将--add-exports java.desktop/sun.font=ALL-UNNAMED添加到jvm参数。例如:

代码语言:javascript
代码运行次数:0
运行
复制
ENV JAVA_OPTS="-server --add-exports java.desktop/sun.font=ALL-UNNAMED"

ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS /app.jar" ]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65683652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档