Java 運行環境字體配置

出自 Arch Linux 中文维基

可能一部分人認為Java應用程式中的默認字體和字體的顯示模式不大理想。下面有幾種方法可以改進Oracle Java Runtime Environment (JRE)中的字體顯示。這些方法可以單獨使用,但是經過許多用戶實踐發現將它們組合使用可以獲得更好的效果。

Java對於TrueType格式字體的支持似乎是最好的。

抗鋸齒[編輯 | 編輯原始碼]

基礎設置[編輯 | 編輯原始碼]

Linux上的Oracle Java 1.6和OpenJDK提供了字體的抗鋸齒功能。使用這個功能,請將以下內容添加到/etc/environment:

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=setting'

setting 是下面內容的其中一項:

設置值 描述
off, false, default 不開啟抗鋸齒
on 全效抗鋸齒
gasp 使用字體文件自帶的配置信息
lcd, lcd_hrgb 為流行的顯示器調整過的抗鋸齒
lcd_hbgr, lcd_vrgb, lcd_vbgr 替代顯示器的設置

gasplcd 設置在大部分情況下表現良好。

選擇使用GTK的顯示風格,請將下面的內容添加到.bashrc:

_JAVA_OPTIONS='-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'
注意:
  • 所描述的Java選項僅適用於使用Java繪製GUI的應用程式,如Jdownloader,而不適用於僅使用Java作為後端的應用程式,如Openoffice.org和Matlab。
  • 「TrueType」 字體包含一個網格顯示擬合和掃描轉換過程的表(Grid-fitting And Scan-conversion Procedure 「GASP」),其中包含了字體作者對不同大小字體顯示的建議。一些字號可以完全抗鋸齒,一些只有部分提示,還有一些顯示為位圖。對於一些字號,上面的方法會組合使用。

在運行之前,在命令行中指定其他的變量,可以嘗試別的配置:

_JAVA_OPTIONS=options executable 

你需要重新登錄使配置生效。

OpenJDK 補丁[編輯 | 編輯原始碼]

即使通過Java選項強制執行了抗鋸齒,得到的抗鋸齒效果也可能不如本機應用程式。可以通過OpenJDK的一個補丁來彌補,AUR提供了這個補丁:

修補後的版本從fontconfig獲得FreeType類型字體的渲染和加載標誌,而不是使用OpenJDK的方法。雖然這是一個Infinality包,但是補丁本身實際上並不依賴於fontconfig-InfinalityAUR[損壞的連結:package not found],因為只使用了普通的fontconfig api。

選擇字體[編輯 | 編輯原始碼]

TrueType 字體[編輯 | 編輯原始碼]

使一些應用程式知道所需字體的目錄路徑,那麼這些Java應用程式就會使用特定的TrueType字體。TrueType字體安裝在/usr/share/fonts/TTF目錄中。將以下內容添加到/etc/environment以啟用這些字體。

JAVA_FONTS=/usr/share/fonts/TTF

你需要重新登錄使配置生效。

修復亂碼 (For JRE8)[編輯 | 編輯原始碼]

將字體文件放在下面的目錄下。如果目錄不存在,則創建該目錄。

/usr/lib/jvm/java-8-openjdk/jre/lib/fonts/fallback/