web-dev-qa-db-ja.com

(Sun)JDKからすべてのTTFフォントが表示されるわけではありません

IntelliJでMonaco.ttfを使用したかった。残念ながら、表示されません。

また、awtから取得したフォントのリストにMonacoフォントが表示されないことに気付きました。

Java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()

Monaco.ttfを/ usr/share/fonts/truetype/osxにインストールしました

また、/usr/lib/jvm/Java-6-Sun/jre/lib/fontsにコピーして、/usr/lib/jvm/Java-6-Sun/jre/lib/fonts/fonts.dirファイルを手動で更新しようとしました。

試行ごとにjvmを再起動しましたが、Sun jdkからフォントが表示されません。

他のすべてのアプリケーションはそのフォントを参照します(JavaにあるがSWTライブラリを使用するEclipseも)

Jdkに追加のフォントを表示させる方法を知っている人はいますか?

6
ithkuil

問題はMonacoフォント自体にあり、適切なメタデータを持たないようで、ハッキングポートであるため、Javaはそれを認識しません。おそらく、このTTFファイルの他のバージョンを見つけることができますが、これはより適切に機能するか、FontForgeを使用して自分で修正しようとします。

私のコメントも参照 IntelliJ IDEA課題トラッカー。

4
CrazyCoder

Fonts.dirファイルを更新するには、mkfontscaleおよびmkfontdirユーティリティをこの順序で実行する必要があります。

ターミナルから/usr/lib/jvm/Java-6-Sun/jre/lib/fontsディレクトリを入力して実行します

Sudo mkfontscale
Sudo mkfontdir

mkfontscaleは、mkfontdirfonts.dirの作成に使用できるfonts.scaleファイルを作成します。

3
user4124

フォントキャッシュを更新する

Sudo fc-cache -f -v
1
wojox

呼び出してみましたか:

Java.awt.GraphicsEnvironment.getAllFonts()

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