Java 运行时环境字体

出自 ArchWiki

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

TrueType 字体似乎是 Java 最支持的字体格式。

抗锯齿

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

运行 xsettings 守护进程

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

覆盖自动获取的设置

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

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=setting'

其中 setting 是以下值之一

设置 描述
off, false, default 无抗锯齿
on 完全抗锯齿
gasp 使用字体的内置 hinting 指令
lcd, lcd_hrgb 针对许多流行的 LCD 显示器调整的抗锯齿
lcd_hbgr, lcd_vrgb, lcd_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 始终将此目录中的字体添加到回退序列中,以查找字符形状(字形)。 这样,无论应用程序请求什么字体,这些额外的字体都将在需要时提供缺少的字形。

参见