付録B |
|
この付録では、Sun JavaTM Wireless Toolkit for CLDC をコマンド行から実行する方法と、アプリケーションのビルドおよび実行の詳細な手順を説明します。また、MEKeyTool と呼ばれる Sun JavaTM Wireless Toolkit for CLDC の証明書マネージャーユーティリティーと、JadTool (Java Application Descriptor Tool) と呼ばれる MIDlet 署名ユーティリティーについても説明します。
コマンド行からアプリケーションをビルドして実行する前に、Java SE ソフトウェア開発キットのバージョンが 1.4.2 以降であることを確認してください。jar コマンドが、パスに含まれていることを確認してください。開発キットのバージョンを確認するには、jar コマンドを実行したあと、コマンド行で java -version を実行します。
関連する例については、デモアプリケーションの bin ディレクトリにあるファイル build.bat と run.bat について見てみます。これらのファイルは、次の場所にあります。
toolkit は、Sun JavaTM Wireless Toolkit for CLDC のインストールディレクトリで、demo はデモアプリケーションの名前を表します。
MIDP アプリケーションの開発に関する詳細については、第 2 章を参照してください。この節では、開発サイクルの各手順をコマンド行から実施する方法について説明します。
ユーザーインタフェースで、1 つの手順でプロジェクトをビルドできます。ただし、実際には、バックグラウンドで 2 つの手順が実行されます。まず、Java ソースファイルをコンパイルして、Java クラスファイルを生成します。次に、クラスファイルの「事前検証」を行なって、CLDC KVM で使用できるようにします。
Java ソースファイルをコンパイルするには、Java SE 開発キットの javac コンパイラを使用します。既存の Sun JavaTM Wireless Toolkit for CLDC プロジェクトのディレクトリ構造を使用できます。MIDP API を使用するようにコンパイラに指示するには、-bootclasspath オプションを指定する必要があります。コンパイル済みクラスファイルの保存先をコンパイラに指示するには、-d オプションを指定します。
次の例は、ソースファイルを src ディレクトリから取り出し、クラスファイルを tmpclasses ディレクトリに出力して、MIDP 2.0 アプリケーションをコンパイルする方法を示しています。わかりやすくするために改行が追加されています。
javac -bootclasspath ..¥..¥lib¥cldcapi10.jar;..¥..¥lib¥midpapi20.jar -d tmpclasses src¥*.java
javac -bootclasspath ../../lib/cldcapi10.jar;../../lib/midpapi20.jar -d tmpclasses src/*.java
ツールキットでサポートされているオプションの API を使用する場合は、その JAR ファイルを -bootclasspath オプションに追加します。
javac の詳細は、Java SE のマニュアルを参照してください。
次の手順では、クラスファイルの事前検証を行います。Sun JavaTM Wireless Toolkit for CLDC の bin ディレクトリに、preverify という便利なユーティリティーがあります。preverify コマンドの構文は次のとおりです。
preverify [options] files | directories
クラスを読み込む場合の基になるディレクトリや JAR ファイルを、セミコロン (;) で区切ったリストの形式で指定します。
出力クラスのターゲットディレクトリを指定します。このディレクトリは、実行前検証を行う前に作成しておく必要があります。このオプションを指定しなかった場合は、クラスは output というディレクトリに出力されます。
コンパイルの例に続いて、次のコマンドを使ってコンパイル済みクラスファイルを検証します。前の例と同様に、わかりやすくするために改行を追加しています。
preverify -classpath ..¥..¥lib¥cldcapi10.jar;..¥..¥lib¥midpapi20.jar -d classes tmpclasses
preverify -classpath ../../lib/cldcapi10.jar;../../lib/midpapi20.jar -d classes tmpclasses
このコマンドを実行すると、事前検証済みのクラスファイルが classes ディレクトリに出力されます。アプリケーションが WMA または MMAPI を使用している場合や、ほかのバージョンの CLDC または MIDP を使用している場合には、関連する .jar ファイルを必ず classpath に含めてください。
MIDlet スイートをパッケージ化するには、マニフェストファイル、アプリケーション JAR ファイル、最後に MIDlet スイート記述子を作成します。
MIDP 仕様の説明に従って、適切な属性が記述されているマニフェストファイルを作成します。マニフェストファイルは、任意のテキストエディタで作成できます。たとえば、マニフェストファイルに次の情報を記述します。
MIDlet-1: My MIDlet, MyMIDlet.png, MyMIDlet MIDlet-Name: MyMIDlet MIDlet-Vendor: My Organization MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC -1.0 MicroEdition-Profile: MIDP -2.0
マニフェストファイル、および MIDlet スイートのクラスファイルとリソースファイルを組み込んだ JAR ファイルを作成します。この JAR ファイルを作成するには、Java SE ソフトウェア開発キットに付属している jar ツールを使用します。構文は次のとおりです。
jar cfm file manifest -C class-directory .-C resource-directory .
たとえば、classes ディレクトリのクラスファイルと res ディレクトリのリソースファイルから MyApp.jar という JAR ファイルを作成するには、次のコマンドを使用します。
jar cfm MyApp.jar MANIFEST.MF -C classes .-C res .
MIDP 仕様の説明に従って、適切な属性が記述されている JAD ファイルを作成します。JAD ファイルは、任意のテキストエディタで作成できます。このファイルには拡張子 .jad を付ける必要があります。
注 - MIDlet-Jar-Size エントリを、前の手順で作成した JAR ファイルのサイズに設定する必要があります。 |
MIDlet-Name: MyMIDlet
MIDlet-Vendor: My Organization
MIDlet-Version: 1.0
MIDlet-Jar-URL: MyApp.jar
MIDlet-Jar-Size: 24601
コマンド行からエミュレータを実行できます。Sun JavaTM Wireless Toolkit for CLDC の bin ディレクトリに、emulator というコマンドがあります。emulator コマンドの構文は次のとおりです。
emulator options
MIDlet スイートの実行に関連するオプションは次のとおりです。
-Dcom.sun.midp.io.http.proxy=proxy-host:proxy-port
-Dcom.sun.midp.midlet.platformRequestCommand=browser
emulator -Dcom.sun.midp.midlet.platformRequestCommand=firefox -Xjam:install=URL-to-app-using-platformRequest-method
常に同じブラウザを使用する場合は、toolkit/lib/system.config に次の行を追加できます。
com.sun.midp.midlet.platformRequestCommand: browser
Windows: Windows の場合、このパラメータが指定されていないと、デフォルトのブラウザが使用されます。
Linux: Linux では、通常、Linux システムにデフォルトのブラウザがないため、このパラメータが必要です。パラメータが指定されていない場合、アプリケーションが URL を開こうとしても何も起こりません。
install=jad-file-url | force | list | storageNames|
指定した JAD ファイルを使用して、アプリケーションをデバイス上にインストールします。
run=[storage-name | storage-number]
インストール済みのアプリケーションを実行します。対象のアプリケーションは、有効なストレージ名またはストレージ番号を使用して指定します。
remove=[storage-name | storage-number | all]
インストール済みのアプリケーションを削除します。対象のアプリケーションは、有効なストレージ名またはストレージ番号を使用して指定します。all を指定すると、インストール済みのアプリケーションがすべて削除されます。
デバッグやトレースを行うには、エミュレータで次のオプションを使用します。
Sun JavaTM Wireless Toolkit for CLDC のコンポーネントは、すべてコマンド行から起動できます。各コンポーネントは、ツールキットの bin ディレクトリにあります。
エミュレータの環境設定をコマンド行から変更するには、-Xprefs オプションを指定して emulator コマンドを実行します。構文は次のとおりです。
filename には、プロパティーファイルのフルパス名を指定します。このファイルの値によって、「環境設定」ダイアログボックスの値が上書きされます。プロパティーファイルには、次の表に示すプロパティーを記述できます。
Sun JavaTM Wireless Toolkit for CLDC のセキュリティー機能も、すべてコマンド行から起動できます。エミュレータのデフォルト保護ドメインの変更、MIDlet スイートへの署名、および証明書の管理を行うことができます。
エミュレータのデフォルトの保護ドメインを変更するには、次のオプションを指定して emulator コマンドを実行します。
MIDlet スイートにセキュリティードメインを割り当てます。ドメインタイプには、untrusted、trusted、minimum、および maximum があります。
JadTool は MIDlet スイートに署名するためのコマンド行インタフェースで、MIDP 2.0 仕様に準拠した公開鍵暗号方式を使用します。MIDlet スイートの署名とは、JAR ファイルの署名者の証明書とデジタル署名を JAD ファイルに追加することです。JadTool は、支払い更新 (JPP) ファイルにも署名できます。
JadTool は、Java SE プラットフォームキーストアに保管されている証明書とキーだけを使用します。Java SE ソフトウェアには、Java SE プラットフォームキーストアを管理するためのコマンド行ツール keytool が用意されています。
JadTool ユーティリティーは JAR ファイルにパッケージ化されています。このユーティリティーを起動するには、コマンドプロンプトを開き、カレントディレクトリを toolkit¥bin に変更し、次のコマンドを入力します。
java -jar JadTool.jar command
指定したキーストアのキーペアの証明書を JAD ファイルまたは JPP ファイルに追加します。
指定した JAR ファイルのデジタル署名を、指定した JAD ファイルに追加します。-jarfile のデフォルト値は、JAD ファイル内の MIDlet-Jar-URL プロパティーです。
入力 JPP ファイルのデジタル署名を、指定した出力 JPP ファイルに追加します。
MEKeyTool は、Java SE SDK に付属している keytool ユーティリティーと同様に、認証局 (CA) の公開鍵を管理します。この公開鍵を使用すると、SSL を使用し、セキュリティー保護された HTTP 通信 (HTTPS) が簡単になります。
MEKeyTool を使用する前に、Java Cryptography Extension キーストアにアクセスできるようにしておく必要があります。これは、Java SE keytool ユーティリティーを使用して作成できます。
http://java.sun.com/javase/6/docs/technotes/tools
/windows/keytool.html
http://java.sun.com/javase/6/docs/technotes/tools
/solaris/keytool.html
MEKeyTool を起動するには、コマンドプロンプトを開き、カレントディレクトリを toolkit¥bin に変更し、次のコマンドを入力します。
コマンドのキーワードは次のようになります。MEKeyTool はインストールディレクトリから起動しますが、デフォルトのキーとユーザーが作成するキーは各ユーザーの個人用ディレクトリ (workdir¥appdb) に存在します。
指定された JCE キーストアパスワードを使用して、指定された Java Cryptography Extension キーストアから ME キーストアに公開鍵をインポートします。デフォルトの ME キーストアは workdir¥appdb¥_main.mks、デフォルトの Java Cryptography Extension キーストアは user.home¥.keystore です。
ME キーストアに含まれているキーと、これらのキーの所有者と有効期限を一覧表示します。ME キーストアは workdir¥appdb¥_main.mks です。
ME キーストアから、指定された所有者が所有しているキーを削除します。ME キーストアは workdir¥appdb¥_main.mks です。
スタブジェネレータを使用して、モバイルクライアントから Web サービスにアクセスすることができます。wscompile ツールによって、Java API for XML (JAX) RPC のクライアントとサービスで使用されるスタブ、タイ、シリアライザ、および WSDL ファイルが生成されます。このツールを実行するときには、設定ファイルを読み込みます。このファイルには、WSDL ファイル、モデルファイル、またはコンパイル済みのサービスエンドポイントインタフェースが指定されています。スタブジェネレータコマンドの構文は次のとおりです。
wscompile [options] configuration-files
CLDC のバージョンを 1.0 (デフォルト) に設定します。float および double は string になります。 |
|
注 - -gen オプションは、1 つだけ指定してください。-f オプションに複数の機能を指定する場合は、コンマ (,) で区切る必要があります。 |
表 B-4 は、-f オプションに指定できる機能 (コンマで区切る) の一覧です。wscompile ツールは、WSDL ファイル、コンパイル済みのサービスエンドポイントインタフェース (SEI)、またはモデルファイルを入力として読み込みます。ファイルの種類の欄は、その機能で使用できるファイルを示しています。
wscompile -gen -d generated config.xml wscompile -gen -f:nounwrap -O -cldc1.1 -d generated config.xml
Copyright© 2007, Sun Microsystems, Inc. All rights reserved.