そもそも、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 用に使用できるように変更してしまいました。