无法在高山Linux上使用openjdk 8初始化类sun.awt.X11FontManager [英] Could not initialize class sun.awt.X11FontManager using openjdk 8 on alpine linux
问题描述
在将openjdk 8与此docker镜像一起使用时,我得到了此堆栈跟踪:openjdk:8-jre-alpine
I'm getting this stack trace when using openjdk 8 with this docker image: openjdk:8-jre-alpine
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager
at java.lang.Class.forName0(Native Method) [rt.jar:1.8.0_131]
at java.lang.Class.forName(Class.java:348) [rt.jar:1.8.0_131]
at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:82) [rt.jar:1.8.0_131]
at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.8.0_131]
at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74) [rt.jar:1.8.0_131]
at java.awt.Font.getFont2D(Font.java:491) [rt.jar:1.8.0_131]
at java.awt.Font.getFontName(Font.java:1279) [rt.jar:1.8.0_131]
at java.awt.Font.getFontName(Font.java:1261) [rt.jar:1.8.0_131]
使用Oracle版本可以正常工作
It works fine using the Oracle version
按照以下说明从此处安装dejavu字体: https://hub.docker.com/r/neduekwunife/openjdk8-jre-alpine-with-fontconfig/
我在Dockerfile中添加了以下行:
Following some directions to install the dejavu fonts from here: https://hub.docker.com/r/neduekwunife/openjdk8-jre-alpine-with-fontconfig/
I added the following line to my Dockerfile:
RUN apk add --update ttf-dejavu && rm -rf /var/cache/apk/*
这现在给我以下错误:
java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/libfontmanager.so: Error relocating /usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/libfontmanager.so: AWTFontDefaultChar: symbol not found
推荐答案
我能够通过恢复到旧版本的openjdk容器来使其工作。这是我的Dockerfile中的FROM语句:
I was able to get this to work by reverting to an older version of openjdk container. Here is the FROM statement in my Dockerfile:
FROM openjdk:8u121-jre-alpine
已替换为:
FROM openjdk:8-jre-alpine
当前相当于更新131。
which is currently equivalent to update 131.
此处记录了一个错误: https://bugs.alpinelinux .org / issues / 7372
There is a bug for this documented here: https://bugs.alpinelinux.org/issues/7372
这篇关于无法在高山Linux上使用openjdk 8初始化类sun.awt.X11FontManager的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!