FreeBSD QandA 2611

FreeBSD QandA

Q. Java2 SDK 1.3 (jdk13) をインストールする方法を教えてください。

A. 現在 FreeBSD 上で動作し、ports となっている jdk13 の実装は以下の5種類です。
     java/linux-sun-jdk13        (Linux版・バイナリ配布)
     java/linux-ibm-jdk13        (Linux版・バイナリ配布)
     java/linux-blackdown-jdk13  (Linux版・バイナリ配布)
     java/diablo-jdk13           (FreeBSD版・バイナリ配布)
     java/jdk13                  (FreeBSD版・ソースからのビルドが必要)

   linux-sun-jdk13, linux-ibm-jdk13, linux-blackdown-jdk13 は
   Linux版バイナリのため、動作させるには Linux emulation を有効にしなければ
   なりません。

   diablo-jdk13 は The FreeBSD Foundation が Sun からの正式なライセンスを受け
   バイナリ配布している、FreeBSD ネイティブな JDK です。
   ただし、バイナリ互換性の問題により、現在のところ FreeBSD 4.x 上でしか
   動作させることができません。

   java/jdk13 はソースからビルドする、FreeBSD ネイティブな JDK です。
   FreeBSD 5.x 上では diablo-jdk13 は動作しないため、ネイティブな JDK が
   必要な場合はこちらをインストールする必要があります。
   また、diablo-jdk13 では native threads や HotSpot がサポートされていないので、
   これらの機能を使用したい場合にも java/jdk13 をインストールする必要があります。

   java/jdk13 のインストールの流れを簡単にまとめると以下のようになります。
     1. ビルド用の jdk をインストールする。
     2. jdk のソース・FreeBSD 用のパッチを /usr/ports/distfiles/ に置く。
     3. ports の java/jdk13 を make install する。

   以下、個別に解説します。

   1. ビルド用の jdk をインストールする。

      java/jdk13 をビルドするためには、bootstrap となる JDK が
      別途必要となります。
      (一度 java/jdk13 をビルドしてしまえば、bootstrap 用 JDK は
      アンインストールしても構いません。)
      FreeBSD 4.x では java/diablo-jdk13 をインストールしておきます。
      FreeBSD 5.x では Linux emulation を有効にしたうえで、
      java/linux-blackdown-jdk13 をインストールしておきます。

      Linux emulation を有効にする方法は、ハンドブックを参照してください。
         <URL:http://www.jp.freebsd.org/www.FreeBSD.org/doc/ja_JP.eucJP/books/handbook/linuxemu-lbc-install.html>

   2. jdk のソース・FreeBSD 用のパッチを /usr/ports/distfiles/ に置く。

      jdk13 を ports からインストールしようとすると以下のようにエラーと
      なります。

        # cd /usr/ports/java/jdk13
        # make
        ===>  jdk-1.3.1pX_Y :
         Because of licensing restrictions, you must fetch the source distribution
         manually.  Please access http://www.sun.com/software/java2/download.html
         with a web browser and follow the "Download" link for the
         "Java(TM) SDK 1.3.1". You will be required to log in and register,
         but you can create an account on this page.  After registration and
         accepting the Sun Community Source License, select "J2SESDK" and
         download the source file, j2sdk-1_3_1-src.tar.gz.  Please place this
         file in /usr/ports/distfiles.

      つまりライセンスの制限により、Sun のサイトからJDK のソースを手動で
      ダウンロードし、/usr/ports/distfiles/ にファイルを置く必要があると
      いうことです。ソースのダウンロードにはユーザ登録が必要です (上記
      ページで登録可能。ちなみに無料)。

      メッセージに従い、j2sdk-1_3_1-src.tar.gz を /usr/ports/distfiles/
      に置き、再度 make します。

        # cd /usr/ports/java/jdk13
        # make
        ===>  jdk-1.3.1pX_Y :
        The source distribution exists on your system, but due to
        licensing restrictions you still need to download the
        patchset, bsd-jdk131-patches-Z.tar.gz, from
        http://www.eyesbeyond.com/freebsddom/java/jdk13.html.
        Please place the patchset in /usr/ports/distfiles.

      Sun のソースをそのまま FreeBSD でコンパイルすることはできず、
      FreeBSD 用のパッチをあてる必要があります。このパッチもライセンスの
      制限により上記サイトから手動でダウンロードする必要があります。

      ダウンロードした bsd-jdk131-patches-Z.tar.gz を /usr/ports/distfiles/ に
      置き、再度 make します。

   3. java/jdk13 を make install する。

      FreeBSD 5.1〜5.2-RELEASE:

         # cd /usr/ports/java/jdk13
         # make WITH_LINUX_BOOTSTRAP=yes install

         注: 単に make install とすると、以下のエラーが発生します。

               ERROR: Your BOOTDIR environment variable does not point
                      to a valid Java 2 SDK for bootstrapping this build.
                      A Java 2 SDK 1.3.1 build must be bootstrapped against any
                      1.3 build. Please update your ALT_BOOTDIR setting, or
                      just unset it, and start your build again.

             JDK をコンパイルするために bootstrap となる JDK が
             必要となるのですが、WITH_LINUX_BOOTSTRAP=yes とする
             ことで java/linux-blackdown-jdk13 が bootstrap として
             使用されます。

      FreeBSD 5.2.1-RELEASE 以降:

         # cd /usr/ports/java/jdk13
         # make install

         注: FreeBSD 5.2.1-RELEASE 以降でも bootstrap の JDK が
             必要なのは同じですが、ports 内部で自動的に
             WITH_LINUX_BOOTSTRAP=yes とセットされますので、
             make install だけで OK です。


   最後に、確認のため Java アプリケーションの Hello World を
   コンパイル・実行してみましょう。java/jdk13 のバイナリは
      /usr/local/jdk1.3.1/bin/
   にインストールされます。

     ソース作成
       % cat HelloWorld.java
       public class HelloWorld {
         public static void main(String[] args){
           System.out.println("Hello World");
         }
       }

     コンパイル
       % /usr/local/jdk1.3.1/bin/javac HelloWorld.java

     HelloWorld.class が生成されたことを確認
       % ls ls HelloWorld.*
       HelloWorld.class    HelloWorld.java

     実行
       % /usr/local/jdk1.3.1/bin/java HelloWorld
       Hello World

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。