日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker中使用Dockerfile定制化jar启动时:at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)

發布時間:2025/3/19 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker中使用Dockerfile定制化jar启动时:at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景

CentOS7中使用Dockerfile部署后臺jar包:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808

在上面使用Dockfile部署帶后臺jar包的鏡像時提示:

at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)

這里的jar包使用的是若依前后端分離版的后臺jar包。

本地搭建流程可以參照

若依前后端分離版手把手教你本地搭建環境并運行項目:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662

在調用他的驗證碼接口時提示如下錯誤。

05:07:30.869 [http-nio-7777-exec-2] INFO? o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet'
05:07:31.075 [http-nio-7777-exec-2] ERROR c.r.f.w.e.GlobalExceptionHandler - [handleException,83] - null
java.lang.NullPointerException: null
?at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
?at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)
?at sun.awt.FontConfiguration.init(FontConfiguration.java:107)
?at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774)
?at sun.font.SunFontManager$2.run(SunFontManager.java:431)
?at java.security.AccessController.doPrivileged(Native Method)
?at sun.font.SunFontManager.<init>(SunFontManager.java:376)
?at sun.awt.FcFontManager.<init>(FcFontManager.java:35)
?at sun.awt.X11FontManager.<init>(X11FontManager.java:57)
?at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
?at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
?at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
?at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
?at java.lang.Class.newInstance(Class.java:442)
?at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83)
?at java.security.AccessController.doPrivileged(Native Method)
?at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
?at java.awt.Font.getFont2D(Font.java:491)
?at java.awt.Font.access$000(Font.java:224)

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

實現

這是因為項目中需要使用圖形驗證碼。

主要原因是字體問題,需要在Dockfile文件中添加下面一條

RUN apk add --update ttf-dejavu fontconfig

添加之后的文件內容為

FROM openjdk:8-jdk-alpine MAINTAINER "badaodechengxvyuan" LABEL description="公眾號-霸道的程序猿" WORKDIR app ADD ruoyi-admin.jar /app/badao.jar RUN apk add --update ttf-dejavu fontconfig EXPOSE 7777 CMD java -jar /app/badao.jar

然后刪除原來的容器和鏡像,重新進行構建

等待構建成功之后再重新運行后即可。

網上也有說可以基礎鏡像不用openjdk,而改用oraclejdk的基礎鏡像

FROM classmethod/oraclejdk-alpine-git:latest

總結

以上是生活随笔為你收集整理的Docker中使用Dockerfile定制化jar启动时:at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。