jdk1.6.0_10でのGUIアプリ文字化け解消方法

Java, Ubuntu

Ubuntuで、Groovyを使って常駐アプリ作る・その2 | ゲンゾウ用ポストイット で、 Ubuntu 上で AWT 上の文字列が化ける(豆腐:□になってしまう)問題がありました。

試しに Windows + jdk1.6.0_10 で同様のプログラムを動かして見たところ、問題なく動作していました。

そこで文字化けする原因をもう少し調査してみました。

Swingも化ける??

試しにjdk1.6.0_07で文字化けせずに表示で来ていた Swing をコンパイルして実行。
すると、 Swing アプリも文字化けしていました。
どうやらjdk1.6.0_10の設定(?)がまずそう。
Googleでもう少し調べてみた。

Jdk1.6.0_10が怪しい?

JDK 1.6.0 u10 - ねこら対策研究要塞日誌@はてな ←たまたま、こちらのサイトをRSS購読していて、たまたまわかりました。

jdk1.6.0_10は最近リリースされた(正式リリースはまだ?)jdkのようです。もしかして、正式に日本語対応ができていない、あるいは不具合の一つなのかな??
jdk1.6.0_7 では日本語のフォント設定が正常にできていたのですが、 jdk1.6.0_10 でできていないので、もしかしたら jdk1.6.0_7 のフォント設定をコピーしたらうまく動くのでは?ということで試してみた。

Jdk1.6.0_10で日本語フォント設定

実は設定方法がよくわからなかったので、以下の方法で 1.6.0_7 から 1.6.0_10 にフォント設定をコピーしてみた。

$ sudo cp jdk1.6.0_10/jre/lib/fontconfig.properties.src  jdk1.6.0_10/jre/lib/fontconfig.properties.src.back
$ sudo cp java-6-sun-1.6.0.07/jre/lib/fontconfig.properties* jdk1.6.0_10/jre/lib/

実行後、Swing、AWTアプリを実行すると・・・できた!
よかった♪

Java, Ubuntu

Posted by genzouw