Linux版のjavaで文字が□になる問題
linux版のastahのzip版をダウンロードして、さっそく起動したら、文字が□になる問題が発生しました。
世にいう豆腐問題です。ずっと前にも見たことがありましたが、どうやって解決したか忘れました。
とりあえず、いろいろ調べてみる。
利用しているJavaを調べる
[foo@localhost astah_community]$ which java /usr/bin/java [foo@localhost astah_community]$ ls -al /usr/bin/java lrwxrwxrwx. 1 root root 22 11月 15 06:34 /usr/bin/java -> /etc/alternatives/java [foo@localhost astah_community]$ alternatives --display java java -ステータスは自動です。 リンクは現在 /usr/lib/jvm/jre-1.7.0-openjdk/bin/java を指しています。 /usr/lib/jvm/jre-1.7.0-openjdk/bin/java - 優先項目 17009 [foo@localhost astah_community]$
これで、/usr/lib/jvm/jre-1.7.0-openjdk/bin/javaが利用されていることが分かりました。
Javaで利用してフォントを調べる
/usr/lib/jvm/jre-1.7.0-openjdk/lib/fontconfig.Fedora.properties.srcを調べる。
何か見るとdialog.bold.japanese-x0208=Sazanami GothicとかなっていてSazanamiってフォントを使うようになっているぽい。
さらに下を見るとfilename.Sazanami_Gothic=/usr/share/fonts/sazanami-fonts-gothic/sazanami-gothic.ttfとなっている。
あるのかどうか調べると
[foo@localhost astah_community]# ls -al /usr/share/fonts/sazanami-fonts-gothic ls: /usr/share/fonts/sazanami-fonts-gothic にアクセスできません: そのようなファイルやディレクトリはありません [foo@localhost astah_community]#
となりそのフォントがない。原因は、このフォントがないためですね。
解決方法は、2つです。
- sazanamiフォントを入れる。
- 別のフォントを参照するように変更する。
解決方法
今回は、2を選択します。
上のファイルを編集して参照先をかえてもいいですが、面倒なのでgoogleで検索するとjreでは、jre/lib/fonts/fallbackを作成して
そこにフォントを入れるらしい。
ディレクトリを作成
mkdir -p /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/fonts/fallback
フォントを作成(VL-PGothicを使うようにした)
[foo@localhost astah_community]# ls -al /usr/lib/jvm/jre-1.7.0-openjdk/lib/fonts/fallback/ 合計 8 drwxr-xr-x. 2 root root 4096 12月 8 21:36 . drwxr-xr-x. 3 root root 4096 12月 8 21:35 .. lrwxrwxrwx. 1 root root 47 12月 8 21:36 VL-Gothic-Regular.ttf -> /usr/share/fonts/vlgothic/VL-Gothic-Regular.ttf lrwxrwxrwx. 1 root root 48 12月 8 21:36 VL-PGothic-Regular.ttf -> /usr/share/fonts/vlgothic/VL-PGothic-Regular.ttf
このあと起動したら、とりあえず、メニューとかは表示された。多分、これで直ったはず。