2009-12-29

【備忘録】Java/Swing のプログラムにおける日本語フォント表示

Java の GUI プログラムで、日本語のフォントが正しく表示されません。環境は Fedora 12 (x86_64) です。

そもそも、Fedora で Java のプログラミングをほとんどしないので気がつきませんでした。

例えば、以下のようなプログラム Hello.java をコンパイルして実行してみます。

// Hello.java
import javax.swing.*;

public class Hello extends JFrame {
private static final long serialVersionUID = 1L;

Hello() {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
add(new JLabel("こんにちは、世界!"));
pack();
}

public static void main(String[] args) {
new Hello().setVisible(true);
}
}


$ javac Hello.java
$ java Hello

日本語フォントが □□□□ となってしまって表示されません。

しかしながら、コンパイルした Hello.class を Windows へコピーして実行してみると日本語フォントが正しく表示されます。

これは、Fedora の Java 実行環境に問題がありそうだと考え、インターネットを検索してみると、既に調べている方がおられました。

[1] Fedora11でSwingのプログラムに日本語を正しく表示させる方法 - 何かしらの言語による記述を解析する日記

 
[1] のサイトの「方法1」に従い、自分の環境に読み替えて編集すると Fedora 上で日本語を表示させることができました。ただし $JAVA_HOME/lib/fontconfig.Fedora.bfc のリネームはしていません。

会社で他の人に使ってもらう GUI ツールがあって、プロトタイプは Tcl/Tk で作って試用してもらいました。しかし、そもそも自分は IT 部門の人間ではないので、長期的な保守を考えれば、(自分しか保守ができない言語で作るより) Java あたりで作り直しておいた方が無難かと思い、この年末年始の休みに作り替えてしまおうとしています。実行環境は Windows 上になりますが、開発は使い慣れた Fedora の方がはかどるからです。
 

追記


[1] の方法で確かに日本語フォントが表示できるようになりましたが、Fedora デフォルトでインストールされていなかった「さざなみ」フォントをインストールしたことで、ブラウザなどの表示フォントが変わってしまいました。以前のフォントの方が断然見やすかったので、「さざなみ」フォントの使用を止めて元に戻し、Windows のフォントを持ってきて(RPM を作成して)Java 用に使用できるように変更してしまいました。

 

2009-12-19

ReactOS 0.3.11

定より二ヶ月ほど遅れましたが、12 月 16 日に ReactOS 0.3.11 がリリースされました。最初 Linux 上の qemu に ReactOS の iso イメージをインストールしてみましたが、動作が固まってしまったりと不安定でした。そこで、出来合いの VMware 用イメージを Windows 上の VMware で起動してみました。

ReactOS 0.3.11

起動時のイメージが変更されています。なんだか昔の Windows for Workgroups 3.11 (WfW) の起動イメージを連想してしまうのは、自分だけでしょうか…。

前回は Linux 上で qemu を使用することにこだわったので、結局 ReactOS 側からネットワークへ接続できずじまいでしたが、今回は難なくネットワークを利用して Firefox をダウンロードしてインストールすることができました。

2009-12-18

【備忘録】Fedora を yum でアップグレード

Fedora 11 のままだった古いノート PC をようやく Fedora 12 へアップグレードしました。通常は、/home 以下のバックアップをとってクリーンインストールをすることにしていますが、今回は面倒だったので yum でアップデートしてみました。

まず以下の2つの RPM ファイルを入手します。

fedora-release-12-1.noarch.rpm
fedora-release-notes-12.0.0-4.fc12.noarch.rpm


例えば、ftp://ftp.kddilabs.jp/Linux/packages/fedora/releases/12/Fedora/ などから入手できます。

# rpm -Uvh fedora-release-12*
...
# yum clean all
# yum -y upgrade

アップグレード後再起動します。

参考サイト
ずんWiki - Fedora upgrade