为什么我运行的 Java 应用程序中的字体在 Mac OS X 中与在 Windows 中看起来不同?

Mik*_*key 6 java macos

它们不应该看起来完全一样吗?或者Java没有自己的字体?它只是将字体名称映射到操作系统字体吗?

sle*_*ske 6

Java 通常使用系统字体,就像其他程序一样。根据规范:“Java 2 平台的所有实现都必须支持 TrueType 字体;对其他字体技术的支持取决于实现。” (java.awt.font 的Javadocs)。

有一个转折点:由于 Java 程序无法提前知道目标平台上可用的字体,因此存在“逻辑字体名称”(“serif”、“monospaced”等)。这些在 Java 中始终可用;Java 运行时会将这些伪字体名称映射到系统上的适当字体。

此映射是可配置的。请参阅http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html

我怀疑有问题的 Java 应用程序使用了这些逻辑字体名称,它们只是映射到 Windows 和 Mac OS 上的不同字体。