在我们将容器迁移到阿尔卑斯_java-17 excel之后,导出功能失败,下一个错误是:
java.lang.UnsatisfiedLinkError: no fontmanager in system library path: /usr/lib/jvm/java-17-openjdk/lib
我在我的Dockerfile中安装了:
RUN apk add --no-cache fontconfig
RUN apk add --no-cache ttf-dejavu
RUN apk add --no-cache freetype
下面是Dockerfile的简短版本:
FROM custom_registry/alpine_java-17
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk
# procps to have the binary 'pgrep'
RUN apk update
RUN apk add curl
RUN apk add procps
#here's mu solution to fix the issue
RUN apk add --no-cache fontconfig
RUN apk add --no-cache ttf-dejavu
RUN apk add --no-cache freetype
# install bash
RUN apk add --no-cache bash
ENTRYPOINT [ "/app/bin/run.sh" ]
但没什么用。也许有人知道怎么解决这个问题?提前感谢!
发布于 2022-05-20 17:08:50
若干备选方案:
首先,高山上的标准Java安装是“无头”Java,它不包括JRE目录中的任何图形库。您需要确保安装了非无头JRE。例如在您的Dockerfile中
RUN apk add --no-cache curl openjdk17-jre
如果仍然失败,则可能需要调试本机库。
看起来您已经安装了正确的包,但是它们的默认位置将不是Java正在查找的/usr/lib/jvm/java-17-openjdk/lib位置。
您可以使用apk来确认包的安装位置,我猜是/usr/lib。
/ $ apk -L info fontconfig
样本输出(用于lcms)
lcms2-2.12-r1 contains:
usr/lib/liblcms2.so.2
usr/lib/liblcms2.so.2.0.12
那么我想你有几个选择:
-Djava.library.path="/usr/lib/jvm/java-17-openjdk/lib:/usr/lib"
https://stackoverflow.com/questions/72226732
复制相似问题