(Sun) JDK 中并非所有 TTF 字体都可见

mkm*_*mkm 6 fonts java jdk

我想在 IntelliJ 中使用 Monaco.ttf。不幸的是它没有出现。

我还注意到 Monaco 字体没有出现在从 awt 获得的字体列表中:

java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()
Run Code Online (Sandbox Code Playgroud)

我在 /usr/share/fonts/truetype/osx 安装了 Monaco.ttf

我也尝试将其复制进去/usr/lib/jvm/java-6-sun/jre/lib/fonts,甚至尝试手动更新/usr/lib/jvm/java-6-sun/jre/lib/fonts/fonts.dir文件

每次尝试时我都重新启动了 jvm,但是从 sun jdk 中看不到字体。

所有其他应用程序都会看到该字体(甚至是 eclipse,它在 java 中但使用 SWT 库)

有人知道如何让 jdk 看到其他字体吗?

小智 4

问题在于 Monaco 字体本身,它似乎没有适当的元数据,并且是一个 hacky 端口,因此 Java 无法识别它。也许您可以找到此 TTF 文件的其他版本,该版本会更好地工作,或者尝试使用 FontForge 自行修复它。

另请参阅我在 IntelliJ IDEA 问题跟踪器中的评论。