Fedora 22+ 預設採用思源黑體,但 Java (Swing/JavaFX) 對 OTF 格式且含 Hinting 資訊的字體支援不完整,導致中文顯示方塊 (豆腐字),尤其簡體環境下會誤用繁體字形。本文提供三階段遷移方案。

/usr/share/fonts/,執行 fc-cache -fv。# 1. 移除思源黑體套件自帶的 fontconfig 規則
rm /etc/fonts/conf.d/*source-han*
# 2. 編輯 /etc/fonts/conf.d/65-nonlatin.conf (或自建 99-java-fonts.conf)
<match target="pattern">
<test qual="any" name="family" compare="eq"><string>Sans Serif</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>XHei</string> <!-- 你的首選字體 -->
</edit>
</match>
java -Dawt.font.desktophints=none \
-Dsun.java2d.fontpath=/usr/share/fonts/XHei \
-jar your-app.jar
若專案時程緊迫,建議直接採用方案一替換字體,徹底規避相容性問題。詳細字體安裝步驟請參考《如何在 Linux 上添加自定義字體》。