JDK 1.5.0 patchlevel 3

FreeBSD で misima の Java プログラムをコンパイルしようとしたら,javac command not found エラー。JDK (Java Development Kit) を入れ忘れていたということ。憂鬱になる。今日は JDK-1.5.0 patchlevel 3 のインストールメモを書いておく。

/usr/ports/distfiles (ports の tarball の格納場所) は,HDD が壊れた際の救済バックアップから戻しておいたので,すでに JDK-1.5 のパッケージは存在していた。それで /usr/ports/java/jdk15 ディレクトリでいきなり make install を投入すれば,構築処理が始まり,あとは放置して終了を待てばよいはずだった。昨夜 23:00 くらいに JDK のコンパイルが始まり,延々と走って,終わったのは今日の昼頃。JDK バイナリパッケージが用意されている Windows や Linux,Mac OS X とは違って,FreeBSD における Java 環境の構築は原始的なのである。よってもって,Sun Microsystems がどれだけ苦労してこの開発ツールを完成させたかが偲ばれるというもの。

FreeBSD ではネイティブ Java を組込むためには,Linux 互換バイナリ環境と Linux 用 JDK-1.4.2 がまずもって必要である。前者は OS インストール時のオプションですでに出来上がっていたが,後者は個別に Sun のサイトからダウンロードしてコンパイルしなければならない。それは JDK 1.5 の Java ソースをコンパイルするためである。Java を入れるために Java が要るわけだ。昔,SE になりたての頃,大型汎用機の新しい OS バージョンを組込む際に,一世代前のバージョンを導入しこれを利用して新 OS のモジュールをアセンブル,リンケージしなければならないという,まるで王位継承儀式のようなことをやっていたのを,それは思い出させる。

JDK-1.5 のための OS 環境設定については,/etc/fstab に linux proc ファイルシステムのエントリ ("linprocfs /compat/linux/proc linprocfs rw 0 0") を追加した上で,以下のコマンドを発行して linprocfs をマウントしておく。

# kldload linprocfs
# mount /compat/linux/proc

もっともやっかいなのは,TeX 環境のローカルパッケージ群と同じく,独自に組込んでいたクラスライブラリ群の再調整である。Jakarta Tomcat (Servlet コンテナ) や AXIS (SOAP),LOG4J (ロガー) などなど。バックアップから復旧するだけでも面倒であった。また一からダウンロードしなければならないとなると,「もうやめた!」モードになってしまう。

最後に CLASSPATH 環境変数に,通常使用するクラスライブラリへのパスを設定して完了である。misima の SOAP リソースを首尾よくコンパイルできた。

FreeBSD ではインストールしただけでは,日本語が豆腐表示されてしまう場合がある。X11 用の日本語 TrueType フォント(/usr/local/lib/X11/lib/fonts/TrueType にある場合)を使うようにするには,以下のようにする。

# cd $JAVA_HOME/jre/lib/fonts
# ln -s /usr/local/lib/X11/fonts/TrueType fallback