CentOS7.8下FSCrawler出现CourierNew,Italic fallback字体警告求助
解决FSCrawler的CourierNew Italic字体 fallback警告
问题背景
两台CentOS 7.8机器运行FSCrawler,其中一台出现如下警告:
13:03:28,449 WARN [o.a.p.p.f.PDTrueTypeFont] Using fallback font 'LiberationSans' for 'CourierNew,Italic'
两台机器通过fc-list查询的可用Courier字体结果一致:
# fc-list | grep "CourierNew" # fc-list | grep "Courier" /usr/share/X11/fonts/Type1/c0611bt_.pfb: Courier 10 Pitch:style=Bold Italic /usr/share/X11/fonts/Type1/c0419bt_.pfb: Courier 10 Pitch:style=Regular /usr/share/X11/fonts/Type1/c0583bt_.pfb: Courier 10 Pitch:style=Bold /usr/share/X11/fonts/Type1/c0582bt_.pfb: Courier 10 Pitch:style=Italic
排查与解决步骤
1. 检查JVM字体缓存与映射
FSCrawler依赖Java环境,JVM可能未正确识别系统字体:
- 查看JVM的字体 fallback目录:
ls -la $JAVA_HOME/jre/lib/fonts/fallback/ - 若缺失Courier相关字体,复制系统字体到该目录并刷新缓存:
cp /usr/share/X11/fonts/Type1/c0582bt_.pfb $JAVA_HOME/jre/lib/fonts/fallback/ fc-cache -fv - 重启FSCrawler服务。
2. 配置FSCrawler字体映射
对比两台机器的FSCrawler配置文件(通常为_settings.json),添加字体映射规则:
- 在配置文件中新增如下片段,将
CourierNew,Italic映射到系统已有的Courier 10 Pitch,Italic:"font": { "mapping": { "CourierNew,Italic": "Courier 10 Pitch,Italic" } } - 保存配置后重启FSCrawler。
3. 刷新系统字体缓存
尽管fc-list显示字体存在,但其中一台机器的字体缓存可能失效:
- 重新生成系统字体缓存:
fc-cache -fv - 验证映射结果:
fc-match "CourierNew,Italic",若返回Courier 10 Pitch,Italic则正常。
4. 检查运行用户权限差异
运行FSCrawler的用户可能缺少字体目录的读取权限:
- 检查字体目录权限:
ls -ld /usr/share/X11/fonts/Type1/ - 若运行用户无读权限,调整权限:
chmod o+r /usr/share/X11/fonts/Type1/
内容的提问来源于stack exchange,提问作者Manoj Agarwal
相关产品推荐
相关产品推荐

