FreeBSD 上での ezplus Java アプリ開発環境の構築

今まで ezplus アプリの開発環境は Windows 用のみが提供されてきました。 Cygwin を使った UNIX 風開発環境はあったものの、これも Windows 上で あることには変わりありません。この度、ソースを用意してから コンパイルを終えるまでの一連の作業を全て UNIX(FreeBSD) 上で 行なうことに成功(ezplus としては世界初?)しましたので、 ここにまとめておきます。
準備

Sun の Java 2 Platform, Standard Edition (J2SE) の SDK をインストールする。 今回は ports の jdk-1.3.1p7 を使用。

Sun の Java2 Mobile Env. Wireless Toolkit (J2MEWTK), MIDP をダウンロードする。今回は J2ME Wireless Toolkit 1.0.4_01 for Solaris & Linux の Linux 版を選択したため、 ダウンロードファイル名は j2me_wireless_toolkit-1_0_4_01-bin-linuxi386.bin 。 展開には java コマンドにパスが通っているか、もしくは java コマンドのフルパス名の入力が必要。 さらに、ハングアップしているのかと勘違いしそうなくらい時間がかかる。 展開後、 WTK104/lib/midpapi.zip, WTK104/bin/preverify を取り出す。 残りは不必要なので削除。

KDDI の「 KJX 作成ツール」 をダウンロードする。今回ダウンロードしたファイル名は kjx_tool_ver2_0.exe 。 そのファイルを展開し、中から KJX_tool_kit_Ver2_0\Tools\Dir1\{kddip.jar,KJXArchiver.jar} を取り出す。ここだけ Windows 環境が必要。残りはいらない。
#この「 KJX 作成ツール」とは別に、 ezplus 開発キットなるものもある。
#こちらは、環境に Windows 用の J2MEWTK が必要になるかもしれないうえに、
#ユーザ登録が必要だが、この中には ezplus emulator が入っているので、
#Windows 上で J2MEWTK と ezplus 開発環境を整えておくのも悪くないと思う。
#この場合、取り出すファイルは ezplusTools\Tools\KDDI-P\kddip.jar, ezplusTools\Tools\CmdTool\KJXArchiver.jar 。

なお、 preverify ファイルのみ、パーミッションに実行権限を与えておく。
コンパイル

次にプログラムの作成。 TamClock.java をソースに、 res ディレクトリに 画像ファイルや音声ファイルなどのリソースを入れたと仮定して解説する。 なお、以下のような MANIFEST.MF ファイル(中身は Windows 用 「 KJX 作成ツール」のproject ディレクトリ下の bin\MANIFEST.MF と一緒)を 作成する必要がある。
MIDlet-Name: TamClock
MIDlet-Vendor: Tam
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0  ← C3003P では KDDIP-2.0 とするらしい
MIDlet-1: TamClock,,TamClock
コンパイルは以下のような手順になる。 なお、作業用一時ディレクトリとして、 tmp1, tmp2 を使用する。
% javac -encoding SJIS -g:none -d tmp1 -bootclasspath midpapi.zip:kddip.jar \
  -classpath tmp1 TamClock.java
% preverify -d tmp2 -classpath midpapi.zip:kddip.jar tmp1
% jar cfm TamClock.jar MANIFEST.MF -C tmp2 .
% jar ufm TamClock.jar MANIFEST.MF -C res .
ここで、以下のような TamClock.jad を作成。これは、前述の MANIFEST.MF の 先頭に jar ファイルの情報を入れただけのもの。
MIDlet-Jar-Size: 34564          ← TamClock.jar のファイルサイズ
MIDlet-Jar-URL: TamClock.jar    ←目的の jar ファイル
MIDlet-Name: TamClock
MIDlet-Vendor: Tam
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
MIDlet-1: TamClock,,TamClock
そして、最後に
% java -jar KJXArchiver.jar -c TamClock.jad TamClock.jar TamClock.kjx
これで ezplus 用の実行形式 TamClock.kjx が完成。

なお、 make 途中の preverify だけは Linux バイナリを使っているので、 Linux プログラムを実行できる環境が必要であるが、 この作業が絶対必要とは思えない。ゆえに、 Linux バイナリを 実行できない環境でも、このプロセスを飛ばすことによって、 JavaVM さえあれば、どこでも ezplus アプリを開発できるかも知れない。

また、同様の方法で ezplus emulator の実行も試みたが、 こちらは内部から javaw コマンド(Windows のコンソール無し JRE)を 呼び出しているうえに、いろいろ Exception が throw されて実行できなかった。 求む情報。
純正「 KJX 作成ツール」風 Makefile

MIDP や KJX 作成ツールから取り出したファイル群 midpapi.zip, preverify, kddip.jar, KJXArchiver.jar を 一つのディレクトリにまとめる。以後このディレクトリを /usr/local/ezplus と するが、適宜読者の環境に置き換えて読むこと。

TamClock を作成する場合を説明する。 読者は TamClock を適宜自分の環境に置き換えること。 src ディレクトリに TamClock.java などのソース群を、 res ディレクトリに 画像ファイルや音声ファイルなどのリソース群を入れる。また MANIFEST を src/MANIFEST.MF ファイル(この点だけは純正環境と異なるが、 中身は bin\MANIFEST.MF と一緒。生成ツールがあるわけではないので、 bin ディレクトリより src の方が好み)として作成する。

そしてこの Makefile を 使う(読者は Project 名を変更する必要がある)。

これで、
% make
とすれば、bin ディレクトリに ezplus 用の 実行ファイル TamClock.kjx ができあがる。
Copyright by Tam, All Rights Reserved. My top page is http://www.cane.jp/, link free is a top page only.
Powered by XML and Xalan.
このページは文法チェックをクリアしています。