Java 如何强制Red Hat OpenJDK 8在Windows上呈现字体,使其与OpenJDK和Oracle JDK一样清晰?
我们的用户在他们的Windows桌面上运行Java GUI应用程序,我们计划从Oracle Java 8切换到OpenJDK 8。但是我们发现不同的OpenJDK版本在字体呈现的质量上是不一致的,Oracle和OpenJDK是等效的,但是RedHat严重缺乏 以下屏幕截图显示了三种不同JDK上Windows上的一个简单Java AWT/Swing程序:Java 如何强制Red Hat OpenJDK 8在Windows上呈现字体,使其与OpenJDK和Oracle JDK一样清晰?,java,windows,awt,redhat-openjdk,adoptopenjdk,Java,Windows,Awt,Redhat Openjdk,Adoptopenjdk,我们的用户在他们的Windows桌面上运行Java GUI应用程序,我们计划从Oracle Java 8切换到OpenJDK 8。但是我们发现不同的OpenJDK版本在字体呈现的质量上是不一致的,Oracle和OpenJDK是等效的,但是RedHat严重缺乏 以下屏幕截图显示了三种不同JDK上Windows上的一个简单Java AWT/Swing程序: Oracle 1.8.0_201-b26 采用OpenJDK 1.8.0_202-b08 Red Hat 1.8.0_201-2-redhat
- Oracle 1.8.0_201-b26
- 采用OpenJDK 1.8.0_202-b08
- Red Hat 1.8.0_201-2-redhat-b09
- 默认外观(javax.swing.plaf.metal.MetalLookAndFeel)
- Windows外观(com.sun.java.swing.plaf.Windows.WindowsLookAndFeel)
- Nimbus外观(javax.swing.plaf.Nimbus.NimbusLookAndFeel)
这是由以下原因导致的Red Hat build回归。采用OpenJDK jdk8构建。这将在Red Hat构建中得到修复,同时可以使用环境变量重新启用旧行为:
FREETYPE_PROPERTIES=truetype:interpreter-version=35
检查字体服务器;jdk字体是ttf(或者与ttf配合使用)。谢谢。我99%确定3个JDK中的每一个都从相同的TTF文件中呈现相同的字体。程序记录的物理字体总是
**TrueType字体:Family=Arial Name=Arial style=0 fileName=C:\Windows\Fonts\Arial.TTF
正确。在redhat上,您需要配置。这(大部分)与Java无关。我没有在Red Hat Enterprise Linux服务器上尝试过同样的实验,但我在Ubuntu Linux桌面上使用了Ubuntu的OpenJDK 8软件包,字体呈现看起来很不错(该操作系统上的默认字体恰好是DejaVu Sans,特别是**TrueType字体:Family=DejaVu Sans Name=DejaVu Sans style=0文件名=/usr/share/fonts/TrueType/DejaVu/DejaVuSans.ttf
)。因此,外观不佳是Windows OS JDK版本特有的,也是这些版本的Red Hat风格特有的。在任何可用的PLAF下,字体呈现是否如您所期望的那样?
FREETYPE_PROPERTIES=truetype:interpreter-version=35