玄箱PRO-Java

玄箱PROはarmアーキテクチャなので利用できるJava環境の選択肢が少ない。
まず、今まで当たり前のように使用してきたSunのJDKがありません。さらに玄箱で使用していたPowerPC用のIBM-JDKも使えません。
(2007.12.25追記)
Sunから評価版のARM/Linux版のJREが提供されています。説明を追加しました。

SunのJREを使う

JDKはありませんが、SunからJREの評価版(http://java.sun.com/javase/embedded/index.jsp )を入手できます。(2007.12.25時点)
ARM - Headless をクリックして幾つかの質問に答えたあと、ダウンロードすることができ、90日間の試用が可能です。

デフォルトでは使用可能文字コードが限られているので、x86版のJRE1.4.2に付属しているcharsets.jarを/opt/j2re1.4.2/libに追加するとほとんどの文字コードが使用できるようになります。

私の環境ではWindowsでダウンロードしたj2re-1.4.2_11-eval-b06-min-linux-arm.tar.gzをFTPで玄箱PROに転送して/optに展開しました。一緒にi386版のJRE1.4.2_12からcharsets.jarも/optに転送しています。
KUROBOX-PRO:~# cd /opt
KUROBOX-PRO:/opt# tar zxvf j2re-1.4.2_11-eval-b06-min-linux-arm.tar.gz
KUROBOX-PRO:/opt# cp charset.jar j2re1.4.2/lib
KUROBOX-PRO:/opt# export PATH=$PATH:/opt/j2re1.4.2/bin
KUROBOX-PRO:/opt# java -version
java version "1.4.2_11-eval"
Java(TM) 2 Runtime Environment, Standard Edition for Embedded (build 1.4.2_11-
eval-b06, headless) J2SE (build 1.4.2_11-b06, mixed mode)
Evaluation version, 90 days remain in evaluation period

※2日間使用した後、java -versionで確認したら
KUROBOX-PRO:/opt# java -version
java version "1.4.2_11-eval"
Java(TM) 2 Runtime Environment, Standard Edition for Embedded (build 1.4.2_11-
eval-b06, headless) J2SE (build 1.4.2_11-b06, mixed mode)
Evaluation version, 88 days remain in evaluation period
となりましたが、再び入手したtar.gzのファイルを展開したら90 daysに戻りました。どうやって残りの日数をカウントしているのでしょうか。
私は一度セットアップしてあったfree-java-sdkは削除しました。
かなり沢山のモジュールが導入されているので、すっきりきれいになりました。

SunのJREの使用感ですが、free-java-sdkで使用していたよりもストレスなく動作するようになった感じがします。
これに伴いJREだけで動作するTomcat5.5に移行しましたが、もったり感がなくなっています。


Sun以外のJDKを使う

Debianのapt-getで入手できるarm対応Java環境で私が唯一Tomcatでの利用を確認できたのはfree-java-sdkだけです。

※free-java-sdkの実体はSableVM
※関連パッケージ51個で83.7M使用します

まずJava導入時の/etc/apt/sources.listの内容を確認
KUROBOX-PRO:~# vi /etc/apt/sources.list
deb http://ftp.jp.debian.org/debian etch main contrib non-free
deb-src http://ftp.jp.debian.org/debian etch main contrib non-free

deb http://security.debian.org etch/updates main contrib non-free
deb-src http://security.debian.org etch/updates main contrib non-free
etchのmain contrib non-freeがあれば良いでしょう。

次にapt-getでfree-java-sdkの内容を確認
KUROBOX-PRO:~# apt-get update
KUROBOX-PRO:~# apt-cache search free-java-sdk
free-java-sdk - Complete Java SDK environment consisting of free Java tools
KUROBOX-PRO:~# apt-cache depends free-java-sdkfree-java-sdk
Depends: jikes-sablevm
Depends: fastjar
Depends: sablevm
Depends: classpath-tools
Suggests: gjdoc
Recommends: <libgnujaxp-java>
Conflicts: sablevm
気になるならapt-cache show free-java-sdkで確認してみても良いです。

最後にapt-getでfree-java-sdkを導入する
KUROBOX-PRO:~# apt-get install free-java-sdk
:
:
KUROBOX-PRO:~# java -version
SableVM version 1.13
- compile date and time: 2006-09-09 15:34:20 UTC
- gcc version: 4.1.2 20060901 (prerelease) (Debian 4.1.1-13)
- 'real life brokenness' features enabled
- signal based exception detection
- copying garbage collection
- bidirectional object layout
- direct-threaded interpreter

Tomcatから利用されるときはjava-sablevm経由になります。
引数やオプションはman java-sablevmで確認してください。
VMヒープサイズ指定がSunと異なるので気をつけましょう。下のは最大ヒープサイズ64Mを指定する場合の引数指定です。
java-sablevm -Dsablevm.heap.size.max=64000000 <Class-Name>


関連パッケージ

ここまでの手順で導入されたパッケージを忘れないようにするためにここに残します。
あとで何に必要で、何で必要だったか分からなくなってしまうことが多かったのでメモは残すほうがいいですね。
KUROBOX-PRO:~# apt-get install free-java-sdk
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  classpath-tools defoma fastjar file fontconfig fontconfig-config java-common
  jikes jikes-sablevm libatk1.0-0 libcairo2 libexpat1 libffi4 libfontconfig1
  libfreetype6 libglib2.0-0 libgtk2.0-0 libgtk2.0-common libice6 libjpeg62
  libltdl3 libmagic1 libpango1.0-0 libpango1.0-common libpng12-0
  libsablevm-classlib1-java libsablevm-native1 libsablevm1 libsm6 libtiff4
  libx11-6 libx11-data libxau6 libxcursor1 libxdmcp6 libxext6 libxfixes3
  libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxtst6 perl
  perl-modules sablevm ttf-dejavu ucf unzip x11-common
Suggested packages:
  defoma-doc psfontmgr x-ttcidfont-conf dfontmgr gjdoc equivs libfreetype6-dev
  ttf-kochi-gothic ttf-kochi-mincho ttf-thryomanes ttf-baekmuk
  ttf-arphic-gbsn00lp ttf-arphic-bsmi00lp ttf-arphic-gkai00mp
  ttf-arphic-bkai00mp libsablevm1-dev libterm-readline-gnu-perl
  libterm-readline-perl-perl zip
Recommended packages:
  libft-perl libgnujaxp-java libatk1.0-data libglib2.0-data hicolor-icon-theme
  libgtk2.0-bin perl-doc debconf-utils
The following NEW packages will be installed:
  classpath-tools defoma fastjar file fontconfig fontconfig-config
  free-java-sdk java-common jikes jikes-sablevm libatk1.0-0 libcairo2
  libexpat1 libffi4 libfontconfig1 libfreetype6 libglib2.0-0 libgtk2.0-0
  libgtk2.0-common libice6 libjpeg62 libltdl3 libmagic1 libpango1.0-0
  libpango1.0-common libpng12-0 libsablevm-classlib1-java libsablevm-native1
  libsablevm1 libsm6 libtiff4 libx11-6 libx11-data libxau6 libxcursor1
  libxdmcp6 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2
  libxrender1 libxtst6 perl perl-modules sablevm ttf-dejavu ucf unzip
  x11-common
0 upgraded, 51 newly installed, 0 to remove and 15 not upgraded.
Need to get 1434kB/26.6MB of archives.
After unpacking 83.7MB of additional disk space will be used.
Do you want to continue [Y/n]?

最終更新日:2007-12-25

タグ:

玄箱PRO-Java
最終更新:2007年12月25日 13:02