centos7 安装字体

460 阅读1分钟

今天部署项目,启动后验证码接口就报错,开发环境无法复现,debug后发现原来是hutool验证码类需要的字体服务器缺少对应的字体。

堆栈提示

Caused by: java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration
	at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1269)
	at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:224)
	at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:106)
	at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:706)
	at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:358)
	at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:315)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:315)
	at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
	at java.desktop/sun.awt.X11Fon

1.安装fontconfig

yum install fontconfig ttmkfdir


添加字体

安装完成后进入/usr/share/fonts/

把window的C:\Windows\fonts按需求丢进去

fc-cache -f -v # 刷新字体缓存 
fc-list # 查看安装的字体

fontconfig 相关文件位置

/etc/fonts # 配置文件位置

/usr/share/fonts/ #字体位置

fontconfig相关操作

# 重新生成字体缓存 ,`-f`选项表示强制重新生成缓存,而`-v`选项表示输出详细信息
fc-cache -f -v 
 # 查看已安装的字体
fc-list