作成 2004/9/9
Eclipse上でDoja開発ツールが利用できるらしいので試してみたメモ。iアプリの作成、実行、デバッグが簡単にできます。けっこう説明はしょってるので既にEclipseを知ってる人向けかも文書。
試した環境は以下です。
J2SEのバージョンはDojaのツールでは公式には1.3.1対応ですが、1.4でも動くようです。
Eclipseは3.0対応版はないので(出ないかなー?)、2.1.3を利用しました。
iアプリ開発キットはドコモのサイトからダウンロードします。
http://www.nttdocomo.co.jp/p_s/imode/java/tool_foma2.html
ダウンロードしたZIPファイルを展開してsetup.exeを実行します。デフォルトでは、Eclipseプラグインがインストールされないので、「カスタム」を選択すること。インストール中にEclipseをインストールしたディレクトリの入力があります。
(追記:もっと新しいの出てます:http://www.nttdocomo.co.jp/p_s/imode/java/)
Eclipseの設定画面→Doja-3.5 Environmentで設定ができます。必須設定で、DoJa-3.5のインストール先を指定します(デフォルトで指定されています)。
新規プロジェクトの作成で、「DoJa-3.5プロジェクト」を選択すると、Dojaなプロジェクトが作成できます。プロジェクト名を入れてあとはデフォルト。
では、はろーわーるどを作ります。2つのクラスを作りました (別に1つでもいいんだけど、いろいろサンプルを作っていくとき、JAMの設定でメインクラスを指定するよりLauncherの中を変えた方が簡単だったので。。。)。
Launcherがiアプリ実行のメインとなるクラス。IApplicationを継承して作ります。最初にstart()メソッドが呼ばれるので、ここにいろいろかいていきます。インターフェイスじゃないのになぜIApplicationという名前なのかは知りません。
Launcher.java
package hoge; import com.nttdocomo.ui.Display; import com.nttdocomo.ui.Frame; import com.nttdocomo.ui.IApplication; public class Launcher extends IApplication { public void start() { Frame frame = new Sample1(); //フレーム何か作成 Display.setCurrent(frame); //画面にセット } }
もうイッコの方が簡単なCanvasクラスを継承したもの。
Sample1.java
package hoge; import com.nttdocomo.ui.Canvas; import com.nttdocomo.ui.Graphics; //最初のサンプル public class Sample1 extends Canvas { public void paint(Graphics g) { g.drawString("Hello World!", 10, 10); //"Hello World"とX=10 Y=10の位置に書け } }
作成したアプリを実行するには、プロジェクトの設定が必要です。作成したプロジェクトを選択して、Eclipseのプロジェクトメニュー→DoJa-3.5設定で行います(右クリックのプロジェクト→プロパティーではないので注意。違和感30%)。最低限、以下を設定します。
AppName hoge(任意) AppClass hoge.Launcher(IApplicationを拡張したクラス)
実行は、DoJa用の起動構成を作って実行します。Eclipseメニューから実行→実行...を選択します。そして、起動構成画面の左側の構成の中からDoJa-3.5アプリケーションを選んで新規を押して構成を作ります。必要に応じて名前やプロジェクトを指定します。
実行を押すとエミュレータが起動します。
次回以降の実行は起動構成の履歴(ツールバーの人が走ってるアイコンとか)から実行できます。
DoJaのデバッグはリモートデバッグで行うようです。
まず、DoJaの起動構成で「デバッグ起動」にチェックを入れて実行します。
次にEclipseのリモートデバッグからアタッチします。Eclipseメニューから実行→デバッグ...を選択します。でもって、リモートJavaアプリケーションを選択し、新規ボタンでリモードJavaアプリケーションの構成を作成します。必要に応じて設定を変更します。DoJaの待ちうけポートはデフォルトで8000番のようなので、とりあえずデフォルト設定でよいと思います。プロジェクトをたくさんつくっている場合は、ソースタブでソース検索パスにプロジェクトが含まれているか確認した方がよいかもしれません。
ブレークポイントでブレークし、ステップ実行や変数の確認が可能です。
デバッグを終わるときは、エミュレータをとじます。と一応デバッグできますが、たまに、DoJaの起動時にブレークをつけてないとブレークしなかったり、履歴から起動したときにデバッグのアタッチが解除できなかったり、微妙に不安定な感じもあります。まあ、環境が変なのかもしれないし、このあたりは何とも言えない。
DoJaのJavaDocは、DoJaをインストールしたディレクトリのdocにあります(デフォルトでC:\iDKDoJa3.5\doc)。DoJaのライブラリ(classes.zipとdoja_classes.zip)にJavaDocロケーションを設定すれば、外部JavaDocとして開けるはずですが。。。
なんか、ZIPにJavaDoc添付できないなー。classes.zipを右クリックでプロパティーが開けないし、Javaビルド・パスのところで添付しても何故か消えちゃう。Eclipse2ってZIPにJavaDoc添付できないんだったっけ???(そういえば拡張子がZIPのアーカイブにJavaDoc添付ってやったことなかったかも。。。)
あまり美しくないですが、とりあえずの対処。Eclipseをインストールしたディレクトリのworkspace\.metadata\.plugins\org.eclipse.jdt.ui\javadoclocations.xml(JavaDocロケーションの定義ファイル)に直接JavaDoc設定を記述すると一応添付できます(以下)。
<?xml version="1.0" encoding="UTF-8"?> <javadoclocation> <location_01 path="C:/iDKDoJa3.5/lib/classes.zip" url="file:/C:/iDKDoJa3.5/doc/"/> <location_01 path="C:/iDKDoJa3.5/lib/doja_classes.zip" url="file:/C:/iDKDoJa3.5/doc/"/> </javadoclocation>
これで、一応ソース上でDoJaのクラスなどを選択し、SHIFT+F2(ナビゲート→外部JavaDocを開く)でJavaDocが開けます。
はるか昔に作ったJ2SEとDoJaでiアプリのサンプルを動かしてみました。画像読み込みやサウンドなども普通に動くようです。ただし、外部リソースにアクセスするものは、ADF(JAM)の記述が必要です。
画像やサウンドなどのファイルはresディレクトリ以下に置くのが普通みたいです。
スクラッチパッドの利用は、SPsizeの指定が必要です。プトロジェト→DoJa3.5設定で、SPSizeの項目に適当な整数を入力します。この数値は、利用するスクラッチパッドのサイズをきっとバイト数で指定します。指定しないと、"java.io.IOException: No SPsize key's value"というエラーがでます。
サーバへのネットワークアクセスにはいくつか設定が必要です。
もちろんWebサーバーにCGIなりサーブレットなりが必要ですが、エミュレータ上からでもHTTPアクセスの動作テストは行えました。
Eclipseからエミュレータを起動したとき、プロジェクトのbinディレクトリに、jamとjarファイルが出来ているので(表示されない場合は、プロジェクトを右クリック→最新表示)、それをサーバに置いて、窓口のHTMLを作ればよいようです(簡単ね)。HTMLはこんな感じ。でも私はiモードもってない(泣)ので、動作確認はしてません。
<html> <body> <object declare id="test" data="doja1.jam" type="application/x-jam"> </object> <a ijam="#test" href="test.html">ダウンロード</a> </body> </html>
ダウンロードしたiアプリ開発キットのdocsにPDFのドキュメントがあります。
DoJa+Eclipseインストールと設定は以下が詳しいです。
IT Media Eclipseで始めるiアプリ--環境構築編
今回作ったプロジェクト&サンプル
doja1.zip