Java 运行时环境字体

来自 ArchWiki

一些用户可能会觉得默认的 Java 字体或者 Java 应用程序中的字体显示模式不尽如人意。 有几种方法可以改进 Java 运行时环境 (JRE) 中的字体显示效果。 这些方法可以单独使用,但许多用户会发现将它们结合使用可以获得更好的效果。

TrueType 字体似乎是与 Java 一起使用的最佳支持格式。

反锯齿

Oracle Java 1.6 和 Linux 上的 OpenJDK 提供了字体的反锯齿功能。

运行 xsettings 守护进程

Java 尝试通过 xsettings 获取系统默认设置。 在 GNOME 上,您无需执行任何操作,gnome-settings-daemon 已经在运行。 否则,Xsettingsd 是一个轻量级的替代方案。

覆盖自动获取的设置

如果您不想运行 xsettings 守护进程,或者字体仍然看起来很糟糕,那么还有一个环境变量可以配置反锯齿

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=setting'

其中 setting 是以下值之一

设置 描述
offfalsedefault 无反锯齿
on 完全反锯齿
gasp 使用字体的内置 hinting 指令
lcdlcd_hrgb 针对许多流行的 LCD 监视器调整的反锯齿
lcd_hbgrlcd_vrgblcd_vbgr 替代 LCD 监视器设置

gasplcd 设置在许多情况下效果良好。

要选择使用 GTK 外观,请添加以下内容

_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) 表,其中包含设计者对字体在不同磅值下的显示的建议。 某些尺寸建议完全进行抗锯齿处理,其他尺寸则应进行 hinting,还有一些尺寸应显示为位图。 有时,某些磅值会使用组合。

字体选择

TrueType 字体

某些 Java 应用程序可能会指定使用特定的 TrueType 字体; 这些应用程序必须知道所需字体的目录路径。 TrueType 字体安装在目录 /usr/share/fonts/TTF 中。 添加以下环境变量

JAVA_FONTS=/usr/share/fonts/TTF

修复豆腐块

将字体文件放置在 /usr/lib/jvm/java-8-openjdk/jre/lib/fonts/fallback/ 中。 如果需要,请创建它。

/usr/lib/jvm/java-8-openjdk 替换为您实际使用的 JRE 的 $JAVA_HOME。 请注意,自 Oracle Java 9 以来,该功能已被删除,因为 Oracle 认为这是一个错误,以鼓励用户更改 lib,将配置文件移动到 conf 并将回退功能称为“错误功能”。 提供此行为的特定函数是 sun.awt.FontConfiguration.getInstalledFallbackFonts,并且 OpenJDK 似乎仍然具有它。

这样做会使 Java 始终将此目录中的字体添加到后备序列中,以查找字符形状(字形)。 这样,无论应用程序请求什么字体,这些额外的字体都将在需要时提供缺少的字形。

参见