JavaME入門覚え書き

Willcomから新端末が発表された。ハイエンド機が発表されなかったため古くからのマニアには受けが悪い結果となったが、京ポンにもとうとうJava環境が搭載された。またソフトバンクからはWillcomW-ZERO3に続き、スマートフォンが発表された。さらにauは勝手アプリが作成できるBrew上のJavaを開始するという。
これらの環境の多くはJavaMEと呼ばれるWirelessDevice向けのJava標準に従った環境を持つ。そこでJavaMEに手を出してみることにした。

JavaME概要

JavaMEに関してはSE、EEに比べると資料が少ない。それでも書店に行けばそれなりに本が手に入るようだ。
JavaMEは機種ごとに実装レベルが大きく異なる部分があるのでできるだけ自分の機種向けの本を手に入れるのが良いと思う。最近ではCLDCとMIDP2.0の組み合わせが多いようだが、実際にはオプションであるJSRがいくつも存在するため例えこの組み合わせでも実行環境は異なることになる。

オンラインでJavaMEに関して学ぼうとするとあまり良いページが少ないように感じた。
とりあえず本家が一番良いようだ。
http://java.sun.com/javame/index.jsp

またNetbeansの学習者向けリンクもある。
http://www.netbeans.org/kb/trails/mobility.html

Java.netのコミュニティには最新の情報が良く集まっているようだ。
http://community.java.net/mobileandembedded/

2chのプログラム板には次のスレッドが存在する。(倉庫行き注意)
http://pc10.2ch.net/test/read.cgi/tech/1155174514/

開発環境

JavaMEの開発はPC上でビルドし、携帯実機にデプロイする。
ほとんどがWindows向けであるが、最近はLinux向けの環境も出てきているようだ。
また有志でMacOSX上で頑張られている人たちもいるようなので興味がある人は検索してみてほしい。


開発環境には携帯電話のエミュレータが含まれる。プログラムを作成したらエミュレータ上で実行し、デバッグし、jadと呼ばれるパッケージを作成する。
jadを実機上で開くとJava実行環境にインストールされる仕組みだ。


携帯開発各社、また各キャリアからそれぞれ開発環境が提供されている場合があるようだ。それを手に入れることが第一だろう。


次にSunからWTKと呼ばれる本家のツールが存在する。
つい最近WTK2.5のCLDC向け、CDC向けがリリースされたようだ。
http://java.sun.com/products/sjwtoolkit/download-2_5.html

使い方はインストール後にドキュメントを読むと詳しく書いてある。
これだけでも十分に開発はできるのだが、やはり強力なIDEを利用したいのが普通だと思う。

一番のお薦めはNetbeansだ。Netbeansをインストールすると開始画面にアドオンとしてMobilityのリンクがある。
または以下から入手できる。
http://www.netbeans.org/products/mobility/

使用方法はNetbeansからHelpのTutorialで以下のリンクが表示される。
http://www.netbeans.org/kb/55/quickstart-mobility.html

NetbeansのアドオンにはWTKが含まれるようだが、新しいWTK2.5をNetbeansのアドオンで利用するにはこのQuickStartのChanging Emulator Platformを参考にすると良いようだ。

Netbeans上でMobile向けのプロジェクトを作成すると、簡単なプログラムであれば何も設定ファイルを記述することなしにRunを選ぶだけでビルドが行われ、エミュレータ上でプログラムが実行されてしまう。またサンプルアプリケーションが山のようについてくるので学習にも向いている。


Eclipseが使いたい場合には以下のものがある。ただし筆者はまだ試していない。
http://www.eclipseme.org

またW-Zero3向けのJava環境を実装されたアプリックス社ではEclipse用のJavaME開発プラグインを無料で提供している(要ユーザ登録)
http://www.aplix.co.jp/jp/products/jb_micro/plugin.html

私がインストールしたときには必要容量が10Gと表示されて最初はインストールできなかった。10Gの空きがあるHDを探してやっとインストールできたが実際のインストール容量は5,6M程度だったようだ。

チュートリアル

JavaSE,EEではSunから素晴らしいチュートリアルが提供されているのでJavaの学習にはSun本家以外特に必要なかった。
しかし、JavaMEに関してはどうもダメなようで、ぶつ切りのJSR別のようなものしか見つからなかった。書籍は発売しているようだが、オンラインではそれを見つけられなかった。
しかし驚くべきことにNECが日本語で素晴らしいチュートリアルを提供していた、
http://www.nec-mfriend.com/jp/lecture/lecture_c7_1.php
このサイトは中学生が博士にJavaMEプログラムを習っていく設定になっており、プログラムの経験が全くない人向けになっている。Javaを既に知っている人には少し冗長であるが、7章から具体的なMIDPのプログラミングの話になっていく。


英語ではまずJava.netに連載があるようだ。
http://today.java.net/pub/a/today/2005/02/09/j2me1.html

次に見つけたのはオライリーのOnJavaだ。
http://www.onjava.com/pub/q/excerpts

ここではオライリーから出版されている書籍の一部が公開されている模様。
MIDPに関してはGUIに関して3本、入門が5本公開されている。

終わりに

私もまだ始めたばかりでよくわかっていないがMIDletのプログラムはAppletのようで懐かしい感じがした。もっとも昔のままのAWTプログラミングという訳でもなく、大分拡張されているようでこれからが楽しみだ。ただ携帯の実行環境はセキュリティがシビアでAppletで感じたよりもさらにストレスフルな開発になるかもしれない。これはキャリアや端末開発各社で異なるようだ。
携帯Javaは日本が進んでいるのだと思っていたが、SVGの対応機種など見ると日本の端末は一台もなかった。ひょっとして携帯Javaももはや海外のほうが進んでいるのだろうか?
日本の携帯事情はかなり特殊なようで海外サイトを見ていると開発プラットフォームの区分にJapanがあったりして結構世界的にもその鎖国性は有名なようだ。
日本のスマートフォンがWindowsMobileしか選べないのはかなり寂しい。PalmSymbianに戻ってきて欲しい。
WindowsMobileの環境ではVCや.Net compactという選択肢もあるようだが、無料で開発できるのかどうかはわからなかった。また携帯業界ではAdobeのFlashLite2.1も注目されているようだ。しかしこれも開発はFlash8Professionalを買わなくてはいけないらしい。ただActionScript2のフリーなコンパイラはあるようだ。
http://www.mtasc.org/
まだ何もよくわからないのでしばらくはJavaMEに集中しようと思うが、最近はFLEXが騒がしいのでそれなりに気にしていこうと思っている。