我是靠谱客的博主 清脆外套,最近开发中收集的这篇文章主要介绍Docker Unbuntu18 OpenJDK9 NPE FontConfiguration.getVersion (awt 字体库问题),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
java.lang.NullPointerException: null
at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1288)
.....
在使用Docker容器运行springboot程序时,验证码请求需要使用到字体库,本机运行没有问题,放到服务器上在容器中运行出现NPE问题,由于openjdk9中默认不带有awt字体库,所以获取字体出现NPE.
docker容器环环境openjdk9, Unbuntu18.04 , 解决方式就是安装fontconfig字体库,Dockerfile如下:
FROM adoptopenjdk/openjdk9
LABEL manitainer="tm<t0m999@xxx.com>"
LABEL description="This is demo service."
ARG APP_HOME=/app/
ARG APP_NAME=demo-srv
ARG APP_BOOT=${APP_NAME}-boot
VOLUME /tmp
ADD ${APP_BOOT}.tar $APP_HOME
# for openjdk awt font solution
安装fontconfig库,处理NPE问题
RUN apt update && apt install fontconfig -y && apt install --fix-broken -y
RUN mkdir -p ${APP_HOME}log/
&& mv ${APP_HOME}${APP_BOOT}/bin/${APP_NAME} ${APP_HOME}${APP_BOOT}/bin/start
&& mv ${APP_HOME}${APP_BOOT}/* ${APP_HOME} && rm -rf ${APP_HOME}${APP_BOOT}
ENV BOOT_ARG -Djava.security.egd=file:/dev/./urandom -Dlogging.path=/app/log/
EXPOSE 8000
WORKDIR ${APP_HOME}
ENTRYPOINT ./bin/start
通过apt 更新和安装字体库后,不再出现NPE问题。github上有人说openjdk的字体库问题会在openjdk11解决,没测试,有时间可以用openjdk11试一试。????
最后
以上就是清脆外套为你收集整理的Docker Unbuntu18 OpenJDK9 NPE FontConfiguration.getVersion (awt 字体库问题)的全部内容,希望文章能够帮你解决Docker Unbuntu18 OpenJDK9 NPE FontConfiguration.getVersion (awt 字体库问题)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复