やりたいこと
Javaでフォントによる文字化けが発生したときに、修正する方法です。 エンコーディングによる文字化けは除きます。
前提条件
以下の環境で確認しました。
- CentOS 7
- Java 8(OpenJDK )
- Jenkins 2.128
概要
JDK/JREにデフォルトでバンドルされているLucidaフォントには、 日本語フォントが配布されていません。
JREで通常完全にサポートされている書記体系のうち、 中国語(簡体字)、中国語(繁体字)、日本語、 および韓国語はLucidaフォントでサポートされません。
よって、代わりのフォントを入れる必要があります。
手順
例えば、IPAフォントを使用する場合、以下のようにしました。
rpm -qi ipa-gothic-fonts
mkdir -p /usr/lib/jvm/java-1.8.0-openjdk/jre/lib/fonts/fallback
cd /usr/lib/jvm/java-1.8.0-openjdk/jre/lib/fonts/fallback
ln -s /usr/share/fonts/ipa-gothic/ipag.ttf ./ipag.ttf
この作業のあと、プログラムを再起動したら、 それ以降作成された画像は正常に表示されました。