あまつぶ

1.26 【Mac OS Xでiアプリ】

 また間があいてしまった。
 今回のiアプリ(iTunesとかのことではなく、i-mode端末で動かすJavaアプレットのこと)の件はだいぶ前から書こう書こうと思っていたのだけど、メモが中途半端だったり、年末に片づけをしていた時に間違ってメモを捨ててしまったりしてずっと放ったままになってしまっていた。ずっとためておくほどのネタでもないので、思い出しつつ書いてみることにする。

 まず、参考にさせていただいたサイトの紹介から。ケータイJavaで遊ぼう!。開発環境を整えるところから始まり、プログラムの基本的なところまで書かれていて、大変参考になった。それから、Unofficial "DoCoMo Profile-1.0" API Reference.。ドコモのオフィシャルの情報以外まで含めたAPIリファレンス。あとは、本家ドコモのDoComo Net - 製品・サービス - i-mode - iアプリコンテンツの作成について。リファレンスや開発ガイドなどが置いてある。

 次に、開発環境を構築する。以下は、Mac OS X 10.2.3における話。Mac OS Xには、Javaの開発環境が最初から搭載されている(ん、Developer Toolsがいるのかな??)。/usr/binにjavacなどがあれば、大丈夫なはず(Terminalでwhich javacとかすれば、見つけられる)。ということで、Javaの開発環境についてはとりあえず問題なし。
 あとは、上記ページを参考に、J2ME-CLDC 1.0とi-JADE Liteを入手する。これを書いている時点で、J2ME-CDLCのバージョンは1.0.4。また、ダウンロードにはユーザ登録(無料)が必要。i-JADE Liteは、1.4.1が最新バージョンの模様。無料のLiteバージョンはWindows用しか提供されていないが、ダウンロードして展開したものはMac OS Xでも使用できる。Mac OS X用のLiteバージョンも提供してほしいなぁ……。ちなみに、うちでは、P503iを使っているので、i-JADE LiteもP503i用のものをダウンロードしている。
 ダウンロードしてきたものは、適当なフォルダに展開する。うちでは、「~/work/java」というフォルダを作って、そこに展開した。これは別にどこでもいいのだけど、コンパイルする時に指定することになる。あと、iアプリとして携帯で動くようにするには、先にクラスを検証した状態にしておかないといけないようで、preverifyという作業が必要になる。このためのツールは、上記J2ME-CLDCの中にはいっているのだが、Mac版は存在しない。ここは、ソースからがんばってコンパイルするか、オフィシャルでないアーカイブを探してくるか、どちらかになる。うちでは、どこかから探してきたアーカイブを利用させていただいた。  あとは、preverify用に、i-jade-p.jarを展開しておく。展開は、Terminalで、「jar xvf i-jade-p.jar」とかそんな感じ。展開した、com/nttdocomoを、J2ME-CLDCのクラスフォルダ(j2me_cldc/bin/common/api/classes/comにnttdocomoが追加される感じ)にコピーする。とりあえず、ここまでで準備は完了。

 さて、準備ができたら、ソースコードを適当に作成する。ソースの作成については、今回の主旨とは違うので省略。ソースは、「~/work/java」の下に適当なフォルダを作って、そこに保存した(morseフォルダにMorse.javaを作成)。
 この後の作業の流れは、コンパイル→preverify→jarファイルの作成→jamファイルの作成→実機でのテストというような感じになる。i-JADEでの動作テストは、随時行う。また、コンパイル用の作業用フォルダとして、unverified、preverifiedという2つのフォルダを作っておく。作成したclassファイルをここに保存する。

% javac -g:none -bootclasspath ../j2me_cldc/bin/common/api/classes Morse.java -d unverified
% preverify -classpath ../j2me_cldc/bin/common/api/classes -d preverified unverified
% jar cvfM Morse.jar -C preverified .

 こんな流れ。javacの-g:noneは、デバッグオプションを無効にするものらしい。あと、-bootclasspathでクラスファイルを、-dで出力先を指定。jarファイルができたら、jamファイルを作成して、サーバにアップすれば完了だ。
 あと、上では指定していないが、javacとかjarの出力は日本語で表示されるのだが、漢字コードがEUCではないようなので、nkfなどを使って出力をEUCに変換して使うのがいいかも。エラーが出た時、メッセージが読めないとつらいものがあるので……(しばらくこれで悩んだし)。

 i-JADEでの動作確認は、どの段階でも行うことができる。i-jade-p.jarをダブルクリックして開いて(あがってくるまでにしばらく時間がかかるので、注意。何度もダブルクリックすると、した回数だけあがってきてしまうので(汗))、classファイル、jarファイル、jamファイルを指定すればよい。指定の際、「~」が使えないようなので、「/Volumes」から指定するようにした。また、i-jade-p.jarの状態で動かすよりも、MRJAppBuilderでアプリケーション化したものの方が、起動にかかる時間が若干短いような気がするのでやってみる価値はあるかも。

 なんだか準備不足であまり役に立ちそうもないドキュメントになってしまったが、とりあえず忘れないうちにしたメモ程度のものってことで……(汗)。もう少し便利な方法が出てきたら、また書こうと思う。

January 1, 2003 ↑ 2003 index → March 8, 2003