You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring环境中安装JRE字体以解决No fonts found错误

Spring环境下解决JRE物理字体缺失问题

错误日志:

2023-07-19 14:32:09,621 ERROR [org.springframework.boot.web.servlet.support.ErrorPageFilter] (default task-3) 因异常[Probable fatal error: No physical fonts found.],从请求[/simpleCaptchaImg]转发至错误页面:java.lang.Error: Probable fatal error: No physical fonts found.
    at java.desktop/sun.font.SunFontManager.lambda$getDefaultPhysicalFont$0(Unknown Source)
    at java.base/java.util.Optional.orElseThrow(Unknown Source)
    at java.desktop/sun.font.SunFontManager.getDefaultPhysicalFont(Unknown Source)
    at java.desktop/sun.font.CompositeFont.doDeferredInitialisation(Unknown Source)
    at java.desktop/sun.font.CompositeFont.getSlotFont(Unknown Source)
    at java.desktop/sun.font.CompositeGlyphMapper.initMapper(Unknown Source)
    at java.desktop/sun.font.CompositeGlyphMapper.<init>(Unknown Source)
    at java.desktop/sun.font.CompositeFont.getMapper(Unknown Source)
    at java.desktop/sun.font.StandardGlyphVector.init(Unknown Source)
    at java.desktop/sun.font.StandardGlyphVector.<init>(Unknown Source)
    at java.desktop/java.awt.Font.createGlyphVector(Unknown Source)

这个错误是因为JRE无法找到可用的物理字体,常见于无图形界面的服务器环境(如Docker、Linux服务器)或JRE安装包未包含字体文件的场景。以下是三种可行的解决方法:

方案一:安装系统字体(Linux服务器适用)

  • 安装通用字体包,比如DejaVu字体:
    # Debian/Ubuntu 系列系统
    apt-get update && apt-get install -y fonts-dejavu-core
    
    # RHEL/CentOS 系列系统
    yum install -y dejavu-sans-fonts
    
  • 安装完成后重启Spring应用,JRE会自动识别系统中的字体。

方案二:手动添加字体到JRE目录

  • 准备一个TrueType格式的字体文件(例如simhei.ttf、arial.ttf)
  • 定位JRE的字体目录:
    • JDK 8及以下:$JAVA_HOME/jre/lib/fonts
    • JDK 9及以上:$JAVA_HOME/lib/fonts
  • 将字体文件复制到上述目录
  • 执行命令更新字体缓存:
    fc-cache -fv
    
  • 重启Spring应用即可生效

方案三:通过JVM参数指定自定义字体路径

  • 在应用启动时添加JVM参数,指定字体目录:
    -Djava.awt.fonts=/path/to/your/custom/fonts
    
  • 或者在Spring Boot启动类的main方法中设置系统属性:
    public static void main(String[] args) {
        System.setProperty("java.awt.fonts", "/path/to/your/custom/fonts");
        SpringApplication.run(YourApplication.class, args);
    }
    

内容的提问来源于stack exchange,提问作者ZZZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:32:49