ZHENFENG13/My-Blog

生成验证码图片报错

Closed this issue · 1 comments

我在 Rocky Linux 9.3 (Blue Onyx) (aarch64)用 Jdk21 部署成功后, 生成验证码图片接口报错

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed: java.lang.NoClassDefFoundError: Could not initialize class sun.font.SunFontManager] with root cause

java.lang.ExceptionInInitializerError: Exception java.lang.UnsatisfiedLinkError: /application/jdk-21.0.3/lib/libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory [in thread "http-nio-28083-exec-9"]

GPT 说是 libfontmanager.so 依赖的 libfreetype.so.6 本地库文件找不到, 安装了 freetype 库也不行, 不晓得什么情况

看了下源码, 生成和校验都是交给 cn.hutool.captcha.CaptchaUtil 做的, 没有打印出验证码, 所以现在后台没办法登录

通过安装 freetype 库和 Hutool 使用的 SansSerif 字体, 然后重启应用, 不再报错

yum install freetype -y

yum install dejavu-sans-fonts -y
yum install fontconfig -y
fc-cache -f -v