Docker启动Java项目报异常:FontConfiguration.getVersion

Docker容器运行java11应用EasyExcel导出报错 libfreetype.so.6共享库 镜像解决中文和freetype.so.6共享库找不到的问题,基于oracle jdk11.0.18 Docker镜像。 阅读详情

使用docker部署SpringBoot项目时,导出excel报表时报错了,信息如下:

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)

解决方法:

方法 一(最优):

更换构建镜像

FROM frolvlad/alpine-java:jdk8-slim

方法 二(构建速度较慢):

然后再Dockerfile里面,添加

ADD ./rnr-admin/fonts/Arial.ttf /usr/share/fonts/ 
ADD ./rnr-admin/fonts/Courier.ttf /usr/share/fonts/
RUN apk add fontconfig 
RUN fc-cache --force

tips:新构建的镜像需要使用新的版本号哦

Arial.ttf和Courier.ttf为自己项目new font()时的字体,可以查看自己项目所用到的字体,按需下载,Arial.ttf和Courier.ttf我放入了下载,大家可以进去下载

亲测有效哦~~

excel导出在docker环境中总是失败的问题 excel导出在docker环境中总是失败 ,最直接的原因还是因为没有安装中文字体,解决方法如下: DOCKER环境中没有安装中文字体,需要安装 java.lang.NullPointerException: null 2020/5/29 上午8:40:11 at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) 2020/5/29 上午8:40:11 at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219) 2020 立即下载

相关推荐

手把手教你用DLP4500投影仪玩转结构光3D扫描(附固件烧录与序列设置避坑指南)

本文详细解析了如何使用DLP4500投影仪搭建结构光3D扫描系统,涵盖硬件组装、固件烧录、图案生成与优化等全流程。重点解决了固件烧录失败、图像格式错误等常见问题,并提供了实用的避坑指南和进阶技巧,帮助读者快速掌握DLP4500在3D扫描中的应用。

weixin_42662293的博客 301

记一次FontConfiguration.getVersion报空指针的异常

前言 线上遇到了一个问题,一个导出Excel的功能,在将数据生成excel文件到本地时,出现空指针异常。但是两台服务器只有一台服务器有这个问题,两台服务器的环境基本相同,使用同一个jar包,同样的请求。 异常信息 调查过程 在本地,和另一台服务器验证都没有问题。 检查报错的业务代码位置,写法没有问题,打印log,传参也都有值。 因此,基本不会是代码的问题。 百度打印出的第一行报错信息FontConfiguration.getVersion。 得到第一个搜索结果FontConfiguration.getV

qq_37120536的博客 2483

别再手动调参数了!用3ds Max的tyDiffusion插件,5分钟搞定AI动态纹理生成

本文介绍了3ds Max的tyDiffusion插件如何通过AI技术快速生成动态纹理,大幅提升3D美术师的工作效率。从火焰、水流到布料飘动,tyDiffusion能在5分钟内完成传统手工需要数小时的任务,且效果更自然。文章详细解析了插件的核心功能、实战配置及进阶应用,帮助用户轻松实现AI动态纹理生成。

weixin_30919429的博客 667

若依系统部署在linux系统 验证码报错:FontConfiguration.getVersion报空指针异常

OpenJDKJava最早由SUN公司(Sun Microsystems,发起于美国斯坦福大学,SUN是Stanford University Network的缩写)发明,2006年SUN公司将Java开源,此时的JDK即为OpenJDK。OpenJDK是Java SE的开源实现,他由SUN和Java社区提供支持,2009年Oracle收购了Sun公司,自此Java的维护方之一的SUN也变成了Oracle。

大洋哥的博客 2096

SRAM:SRAM入门指南与工作原理

SRAM(Static Random Access Memory),即静态随机存取存储器,是一种能够读取和写入数据的内存(RAM)。它使用由晶体管组成的触发器来存储数据,只要有电源供应,数据就可以稳定地保存。与动态随机存取存储器(DRAM)不同,SRAM 不需要周期性地刷新来保持数据。

weixin_42896509的博客 1万+

用Python+Charles搞定小程序付费短剧下载(附完整代码与避坑点)

本文详细介绍了如何利用Python和Charles抓包工具实现小程序付费短剧的自动化下载。通过分析小程序视频接口、破解请求参数,并编写Python脚本,读者可以轻松获取并保存短剧内容。文章还提供了完整的代码示例和常见问题的解决方案,特别适合对视频采集和抓包技术感兴趣的开发者。

weixin_28731231的博客 1187

Docker启动Java项目报异常:FontConfiguration.getVersion(FontConfiguration.java:1264)

问题 使用docker部署SpringBoot项目时,验证码代码恰好调用了JDK1.8底层的FontConfiguration这个类生成图片。 结果前端调用的时候抛了个异常。如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 java.lang.NullPointerException: null at sun.awt.FontConfiguration.getVersion(FontCon

zhangjunli的博客 7050

【DevOps】rancher集成ldap,实现统一账号登录

登录到rancher控制台,选择【安全】-【认证】 选择【OpenLDAP】 其中【搜索起点】需要去ldap界面查配置完成

CN_Eden 1092

Docker启动Java项目报空指针异常:FontConfiguration.getVersion

docker 字库未安装报空指针异常问题

weixin_44426352的博客 644

Modbus通信从入门到精通_2_Modbus TCP通信详解及仿真(搭建ModbusTCP仿真环境:创建虚拟PLC并进行ModbusTCP通讯;寄存器与PLC中映射关系;适合理解如何编写上位机)

LocalPort”是PLC的端口,最终的设置如下图所示:(相关的设置都可以查看帮助文档)P#DB1.DBX0.0 BYTE28是以指针形式表示的DB1的DBX0.0开始(在使用的西门子Modbus tcp的程序块中设置的“MB_HOLD_REG”输出寄存器),其有28个字节(28个字节对应14个寄存器),4001是第一个寄存器,往后数14个即可。在上面的基础上,增加一个“DB1”的“组对象”,同时将“MW0”的组对象禁止(双击组对象,“Active”取消勾选),启动之后发现无法连接。

分享学习成长历程,Winter is coming! 1万+

Centos 7 Linux 离线安装使用 MySQL 5.7:下载、安装、配置、使用

本文详细介绍了在 CentOS 7 系统下离线安装 MySQL 5.7 的完整流程,包括环境准备、安装包下载、用户与目录配置、数据库初始化、服务启动与自启设置、root 密码修改、远程访问开启及防火墙配置等关键步骤,并提供了本地与远程客户端(如 Navicat、DBeaver)的连接使用方法,适合无网络环境下的数据库部署参考。

寒水馨 · 轻量级技术文档 · hanshuixin.org 6111

at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)报错问题解决

at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)报错问题解决 项目场景: 使用docker发布微服务时,因项目中有登录操作,需要图片验证码验证 问题描述: 由于在构建docker镜像时使用的是openjdk而不是oraclejdk,在生成图片验证码时出现了问题,后台报错 java.lang.NullPointerException: null at sun.awt.FontConfiguration.g

weixin_42389247的博客 1万+

WorkBuddy KiCad 实战:国产 AI 搭子不只会写代码,传感器板从零走到可审查

真正可用的 PCB 教程不能承诺“一键打样”。本课把 WorkBuddy 放在需求拆分、文件生成和审查记录的位置,KiCad 负责 ERC、DRC 与制造文件,工程师负责最终判断。 本课不会用“AI 一键完成”制造错觉,而是把 WorkBuddy、KiCad 8.0、Python 3.11 与人工审阅组成一条可复现链路。你会从“已确认的接口表、器件库来源、板框与电源方案”出发,得到“KiCad 工程、原理图、初始 BOM、ERC 报告与审查记录”,并学会用真实命令、错误信号和停止条件判断成果能不能进入下一阶

yueyeguzhuo的专栏 206

java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion

docker中OpenJDK excel无法导出 java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion 1.背景说明: 本地使用的是jdk1.8版本功能可正常使用,当通过docker打包镜像部署到linux环境下(openJDK1.8)后无法导出excel,报初始化是否,空指针异常,报错如下: 2.原因: openjdk比jdk1.8简化了一些功能,所以用docker打包的时候更小。excel导出时初始化失败就是因为f

weixin_41377835的博客 8665

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ava.lang.NullPointerExceptionat sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)

方案一、修改docker文件,增加以下配置:重启服务,搞定!方案二、

yz18931904的博客 690

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Docker报错NullPointerException at sun.awt.FontConfiguration.getVersion解决

问题 使用Docker部署Jar包,登录的时候发现生成验证码失败,但是本地却没有问题。查看日志,报错: java.lang.NullPointerException: null at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219) at sun.a...

zhangjunli的博客 7138

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

docker中OpenJDK验证码无法显示 java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion

1.情况说明 自己开发项目的时候都是基于OracleJDK 1.8来做的,图片验证码可以正常显示。但是发布到docker更换成OpenJDK1.8后, 验证码无法显示,后台代码抛出异常,就是各种工具类没有找到没有初始化,异常内容如下, 2.原因 openjdk比oraclejdk简化了一些功能,所以用docker打包的时候更小。 所以后端画的验证码所要用到java的awt组件就被简化了,就一堆的空指针无法初始化错误报出来。 3.解决方法 1.笔者使用的是centos7系统,需要在系统中安装FontConf

写bug的小哥哥 3717

awt字体问题Linux,Linux FontConfig坑记: sun.awt.FontConfiguration.getVersion

问题描述:在使用阿里easyexcel框架做导出功能时,后台出现了NullPointerException异常,异常日志:java.lang.NullPointerException: nullat sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)at sun.awt.FontConfiguration.readFo...

weixin_39941792的博客 1350

Docker Unbuntu18 OpenJDK9 NPE FontConfiguration.getVersion (awt 字体库问题)

java.lang.NullPointerException: null at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1288) ..... 在使用Docker容器运行springboot程序时,验证码请求需要使用到字体库,本机运行没有问题,放到服务器上在容器中运行出现...

t0m的专栏 1403

throwable:java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion(FontConfiguration.

使用EasyExcel导出时,在本地使用无误,在日常/预发机器部署后报错/下载下来的excel文件为空

XuXuDuoDuo_的博客 1932

apline-tomcat镜像 "sun.awt.FontConfiguration.getVersion NullPointerException"问题解决

问题:在使用apline/tomcat镜像的过程中,发现对于涉及图形类的应用报错:java.lang.ExceptionInInitializerError: null     at org.apache.batik.bridge.SVGTextElementBridge.getFontList(Unknown Source) ~[batik-all-1.7.jar:1.7+r608262]   ...

hongweigg的专栏 1万+

OpenJDK验证码无法显示(java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion

之前开发的应用都是基于OracleJDK 1.8来做的,图片验证码显示正常,但是更换成OpenJDK1.8后,验证码无法显示,后台代码抛出异常,异常内容如下,java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion(FontConfiguration.java 1264) 可以看到,猜测是因为验证码的API用到了...

crystonesc的专栏 2万+

Docker sun.awt.FontConfiguration.getVersion java.lang.NullPointerException: null

我是给图片打水印本地成功上了服务器就失败了 解决方法 切换jdk Dockerfile 将 FROM openjdk:8-jdk-alpine改为 FROM java:8 FROM java:8 VOLUME /tmp ADD XXX.jar app.jar RUN echo "Asia/shanghai" > /etc/timezone ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.

lanyanhua的博客 439

at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) ~[na:1.8.0_212] 异常处理

使用docker发布微服务时,因项目中集成flowable框架,获取流程图时报字体错误。 参考博客:https://blog.csdn.net/weixin_42389247/article/details/108083842

huxiaochao_6053的博客 2661

关于使用easypoi遇到的NullPointerException问题

easypoi空指针问题 本地启动使用easypoi是没有问题的,但部署到linux服务器就报如下问题。从问题中可以看出是在调用FontConfiguration的getVersion报了空指针。这里是缺少了fontConfig包,如果是使用docker部署的只要在dockerFile中填加这行命令即可“RUN apk add --no-cache fontconfig ttf-dejavu”。 ...

qq_44150902的博客 1877
上一篇: spring-boot-starter-log4j2 漏洞修复方法
下一篇: vue table自定义样式
柠檬不萌c
博客等级 码龄10年 14粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柠檬不萌c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值