我想将 Monaco.ttf 与 IntelliJ 一起使用。不幸的是,它没有出现。
我还注意到 Monaco 字体没有出现在从 awt 获得的字体列表中:
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()
我在 /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 看到其他字体吗?
问题在于 Monaco 字体本身,它似乎没有适当的元数据并且是一个 hacky 端口,因此 Java 无法识别它。也许你可以找到这个 TTF 文件的其他版本,它会更好地工作,或者尝试使用 FontForge 自己修复它。
另请参阅我在 IntelliJ IDEA 问题跟踪器中的评论。
您需要按此顺序运行
mkfontscale
和mkfontdir
实用程序,以更新 fonts.dir 文件。/usr/lib/jvm/java-6-sun/jre/lib/fonts
从终端输入目录并运行mkfontscale
mkfontdir
创建可用于创建的 fonts.scale 文件fonts.dir
。更新字体缓存
你有没有试过打电话:
Java字体系统似乎有点混乱:
http://www.sabi.co.uk/Notes/linuxFonts.html#fontSwJava
您可能必须解决查找字体的问题。但是如果eclipse可以看到字体,那么你的应用程序就没有理由看不到。您甚至可以选择查看 eclipse 代码,看看他们是如何做到的。
http://java.sun.com/products/java-media/2D/reference/faqs/#Font_and_Text_questions