環境
目次
とは
Linuxにフォントを追加する
追加したフォントをJavaに認識させる
おまけ
- Amazon Linux
- IPAフォント
- JDK1.8
- とは
- Linuxにフォントを追加する
- 追加したフォントをJavaに認識させる
- おまけ
JFreeChartをLinux上で動作させたら日本語が「豆腐」みたいに白い正方形になりました。Windows上だと表示できるのになぜだろう?が出発点です。java.awt系でも同じことが起こるようです。
まずは現状のフォントの状況を調べます。
フォントの状況を調べる
$ fc-list
Utopia:style=Bold Italic
DejaVu Serif,DejaVu Serif Condensed:style=Condensed,Book
DejaVu Serif,DejaVu Serif Condensed:style=Condensed Bold Italic,Bold Italic
DejaVu Serif,DejaVu Serif Condensed:style=Condensed Bold,Bold
・
・(途中省略)
・
DejaVu Serif:style=Bold
$
一覧に日本語っぽいものは表示されたでしょうか。私は残念ながら表示されませんでした。
今回はIPAさんからフォントをいただくことにしました。こちらからIPAフォント(exでないほう)を利用しました。
ダウンロードとインストール
$ wget http://ipafont.ipa.go.jp/xxxxxx/IPAfontXXXXXX.zip
$ unzip IPAfontXXXXXX.zip
$ ls /usr/share/fonts/
ipag.ttf ipagp.ttf ipam.ttf ipamp.ttf <- のようになるように配置
$
再度フォントの状況を調べる
$ fc-list | grep IPA
IPAゴシック,IPAGothic:style=Regular <- 4つ増えました
IPA Pゴシック,IPAPGothic:style=Regular
IPA明朝,IPAMincho:style=Regular
IPA P明朝,IPAPMincho:style=Regular
$
Javaに認識させるために、フォントファイルをリンクします。
フォントファイルをリンク
$ cd Javaホーム/jre/lib/fonts/
$ mkdir fallback
$ cd fallback
$ ln -s /usr/share/fonts/ipag.ttf . <- シンボリックでOK
$ ln -s /usr/share/fonts/ipagp.ttf .
$ ln -s /usr/share/fonts/ipam.ttf .
$ ln -s /usr/share/fonts/ipamp.ttf .
$
フォントファイルをJavaに認識させるために、いろいろと方法があるようです。今回はJavaホーム/jre/lib/fonts/fallbackに単純に配置しました。このディレクトリに配置すると単純に認識するようです。
「Javaホーム/jre/lib/fontconfig.properties」を配置し認識させる方法もあるようです。こちらはフォントファイルの詳細設定(複数の日本語フォントがあるときにコチラを優先させるとか)ができるようです。fontconfig.propertiesのサンプルは「Javaホーム/jre/lib/fontconfig.properties.src」のようです。「Javaホーム/jre/lib/fontconfig.bfc」はバイナリファイルのようで編集はできないようです。