Home > Products > Programing tools > MIDP Builder > FAQ |
|
|
MIDP
Builder
Ver. 2.x
MIDP開発時に便利な書籍 Amazon.co.jpのカスタマーレビューで 海外で翻訳出版決定! |
|
-基本-
-バージョンアップ・ライセンス-
-開発-
-カスタマイズ-
-制限事項-
-その他-
|
|
MIDP Builder2は、MIDP(Mobile Information Device Profile)アプリケーション開発ツールです。MIDPは、携帯電話などの小型機器向けJava言語仕様で世界標準の仕様です。日本国内ではボーダフォン(旧J-PHONE)とKDDIが採用しています。つまり、MIDP BuilderはボーダフォンのVアプリ(旧 J-PHONEのJavaアプリ)、KDDIのezplusが開発できるのです!
MIDP Builderが提供する機能は、以下に挙げるように本格的な開発を行っている私どもが必要と感じた機能を一通り提供していますので、とても便利に使えるはずです。
- MIDPアプリケーションの新規作成
- MIDPアプリケーションに指定する属性の編集
- プリプロセッサによるソースコードの条件編集機能
- コンパイルオプション指定
- オブファスケーターを使用したファイルの軽量化
- J-PHONE、KDDIなどの拡張APIを使用した開発
- 外部Classファイルなどのライブラリを使用した開発
- JAD、MANIFESTファイルをUTF-8にエンコード
- KDDIのKJXファイル(ezplusのファイル)作成
- ビルドしたKJXファイルへのCRCチェックバリュー付加
- KJXファイルを作成する前にJADファイルに属性を追加
- 外部エミュレータの起動
- ビルド後のファイルサイズ表示
- CLASSファイルとリソースファイルのパッケージング※1
※1 Ver2.0.12からパッケージングだけを行う機能が追加されました。
MIDP Builder Ver 1.xではできなかった新規作成や属性編集、プリプロセッサなどの機能が追加され、より使いやすくなりました。このことによりSunの配布しているJ2ME Wireless Toolkitと置き換えて使用することが可能となっています。
使用するディレクトリに関してもJ2ME Wireless Toolkitと互換性があるため同時に使用することが可能です。なお、MIDP Builder2はVer 1.xの設定ファイルとの互換性はありません。
現在、起動回数限定バージョンがダウンロードできますので、MIDP Builder2の便利さを理解するためにも是非試用してみて下さい。
MIDPの開発方法などに関してはSkyArtsの代表である「米川」が執筆した「Java2ME MIDPゲームクリエーターズガイド - J-PHONE、KDDI完全対応」(技術評論社から発売中)を購入して学んで下さい。
NTTドコモのiアプリ(DoJa)開発には姉妹製品の「DoJa Builder2」を使用して下さい。
|
MIDP Builder2を使うためには以下のソフトウェアが必要です。
- Microsoftの.NET Framework(必須)
※Windows Updateなどを使用することでMicrosoftサイトから無料でダウンロードできます。
※ただし、現在はWindows98/ME/NT4/2000/XPのみのサポートになります。- J2SDK 1.3以上 (必須)
- Preverify(実行前検証)ツール (必須)
※J2ME Wireless Toolkit 1.0.3以上に付属のツールで可。- MIDPのクラスライブラリ(必須)
※J2ME Wireless Toolkitに付属のクラスライブラリで可。または、 J-PHONE、KDDIのライブラリでも可。- ProGuard 1.5 (任意)
※GPLで配布されているオブファスケーターツール(無料)- ボーダフォン(旧J-PHONE)のクラスライブラリ (任意)
※J-PHONEのサイトで無料で提供されているJ-SKY Application Emulatorをインストールすることで手に入れることができます。- KDDIのezplus開発ツール (任意)
※KDDIのサイトから無料で手に入れることができます。
|
Q:J2ME Wireless Toolkitと同時に使用できますか?
はい、できます。
MIDP Builder2は、J2ME Wireless Toolkitのディレクトリ構造とある程度互換性を持たせています。そのため、J2ME Wireless Toolkitで作成したプロジェクトをそのまま使用することができます。
また、MIDP Builder2では、独自ディレクトリを作成して使用するためJ2ME Wireless Toolkitの使うディレクトリやファイルとぶつかることはありません。なお、MIDP Builder Ver. 1.xはJ2ME Wireless Toolkitが作成したプロジェクトを使用していましたが、MIDP Builder2はJ2ME Wireless Toolkitとは別にプロジェクトを作成することができます。そして、そのプロジェクトはJ2ME Wireless Toolkitのものと互換性があります。
|
オブファスケーターは本来、Classファイルの中に記載してあるクラス名や変数名を「a」や「b」のように短い名前にして可読性を悪くするものなのですが、副産物としてClassファイルが軽くなります。
MIDP Builder2では、オブファスケーターとしてGPLで配布されているProGuard(無料)を使用します。このProGuardを使用して試したところ、ファイルサイズを30〜500バイト以上も減らすことができました!
※Ver2.0.6にてRetroGuardからProGuardに変更しました。
PC向けの開発を主に行っている方に取っては30〜500バイト以上減らすことができても大したことはありませんが、容量制限が厳しく、通信速度も遅い携帯電話向けに開発を行う際にはこのファイルサイズ削減機能はとても大きいものになります! ファイルサイズの削減は通信時間の削減であり、通信費の削減にも繋がるのです!この機能を使えばファイルの軽量化のためにクラス名や変数名などを短くする努力も必要ありません。そしてクラス名が短くなってもJAD、マニフェストファイルに記載する内容はMIDP Builder2が自動的に書き換えてくれるので、是非使用することをお勧めします。
当然、ProGuardの英語のマニュアルを読む必要もありません!ダウンロードして適当な場所に解凍するだけの手間だけで使用できるようになります!なお、このオブファスケーターによる最適化は、SunのJ2ME Tech Tipsでも紹介されています!
|
KDDI Java eXtensionの略で、KDDIのezplusのファイルです。通常のMIDletではJADファイルとJARファイルで動作させますが、ezplusはJADファイルとJARファイルを元にKJX作成コマンドを使用してKJXファイルを作成します。
なお、KJX作成コマンドを使用するためにKDDIサイトからKJXツールをダウンロードしておく必要があります。
|
KDDIの端末は、ezplusのKJXなどのリソースファイルをダウンロードする際にCRC(Cyclic Redundancy Check)という処理を行います。この処理はファイルが正しくダウンロードできたかどうかを調べるものと考えればわかりやすいでしょう。
端末側でこのCRC処理を行うためには特別な計算式で計算した値を予め リソースファイルに付加しておく必要があります。この処理をCRCチェックバリュー付加処理を呼んでいます。
この処理は必須な処理でありながらKDDIの配布しているKJXツールではCRCチェックバリュー付加処理を行う機能は提供されていないため、別途ツールを用意して処理を行う必要があります。
しかし、MIDP Builder2では、CRCチェックバリュー付加処理を行う機能を搭載しているため、チェックボックスをチェックするだけで自動的に処理します。CRCチェックバリュー付加処理だけを行うCRC4KDDIというソフトウェアを無料で配布していますので、MIDP Builder2と組み合わせて使うことで好きな時に処理ができるようになりさらに便利になるのではないでしょうか。
※A5301T以降のezplus対応端末では、XHTMLのobjectタグによるダウンロードが可能になりました。詳しくはKDDIのサイトを参照して下さい。
|
はい、動作します。ただし、JDK1.4ではClassファイルのフォーマットが変更されているため、コンパイルの際に-target 1.1オプションを付ける必要があります。
MIDP Builder2にはこれらのコンパイル時のオプションを指定することができる機能を提供しているため、今後のJDKのアップデートにもスマートに対応できるようになっています。
|
Webからダウンロードできる起動回数限定版は5回までしか起動できません。エラーダイアログには起動回数が越え、ライセンスを購入して下さいと記載があると思います。さらに使用をしたい場合はライセンスを購入して下さい。
|
MIDP Builder2を起動できないこととして、以下のことが考えられます。
- お使いのPCに.NET Frameworkの実行環境がインストールされていない
MIDP Builder Ver 1.xまではJavaアプリケーションでしたが、Ver 2.0からは.NET Framework上で動作するWindowsアプリケーションになりました。 そのため、Windows Updateなどを使用して.NET Frameworkのランタイムをダウンロードし、インストールしておく必要があります。
なお、現在.NET FrameworkはWindows98/ME/NT4/2000/XPのみのサポートになります。
- .NET Framework1.1がインストールされていない
Ver2.0.8からは.NET Framework1.1でコンパイルしています。そのため、もし1.0のみがお使いのPCにインストールされている場合には英語で書かれたエラーダイアログが表示されるはずです。
この問題を解決するには以下の方法があります。
- 「MIDPBuilder2.exe」ファイルがあるディレクトリに「MIDPBuilder2.exe.config」ファイルを置く
- .NET Framework1.1をインストールする
.NET Framework1.1は1.0への下位互換性があるため、 .NET Framework1.0をアンインストールし、1.1をインストールすることをお勧めします。なお、1.0がインストールされた環境に1.1をインストールしても1.0が上書きされる訳ではないので、1.1をインストールした後で必要がない場合は1.0を消してしまうことをお勧めします。
|
MIDP Builder Ver.1.xはJavaアプリケーションでした。しかし、そのことにより以下の問題点がありました。
- 起動が遅い
- 動作が重い
- GUIが使いづらい
- ホイールマウスが使えない(JDK1.3の場合)
- ダイアログが後ろに行くと元に戻しにくい
これらのことからユーザーの開発効率をあげるためにはVer1.xを引き継いでJavaアプリケーションのままバージョンアップを行うことは難しいと判断しました。
開発環境としてエミュレータなどが一番揃っているのはWindowsであり、Ver1.xのユーザーはWindowsを使っていると判断しています。そのため、Ver2.xはより使いやすいWindowsアプリケーションとして提供することを最優先に考えました。
そして今後のWindowsアプリケーションの主流が.NET Frameworkになると考え、いち早く.NET Framework対応のアプリケーションとして一から開発を行いましたので、.NET Frameworkが必要となります。
.NET Framework必須のソフトウェアは今後どんどん増えていきますので、この機会にインストールしてみていかがでしょうか。
|
MIDP Builder2、および姉妹製品のDoJa Builder2で使用されているプリプロセッサ・エンジンは組み込み式であるため、プリプロセッサ機能だけを使用することはできません。
しかし、 MIDP Builder2で使用されているプリプロセッサ・エンジンのJava移植版である「PP4J」という製品があります。試用版がダウンロードできますので、検討してみて下さい。
|
はい、できます。
ただし、「MIDPBuilder2.exe.config」をテキストエディタで開き、「supportedRuntime」タグの下に以下のタグを追加する必要があります。<supportedruntime version="v2.0.50727" /> <supportedRuntime version="v2.0.40607" />
|
|
商用、非商用を問わず継続した使用をする場合は、1コンピュータ分につき1575円(内訳1500円+消費税(5%))をお支払い下さい。 つまり、2台のコンピュータで使う場合は2ライセンス購入していただくことになります。このことを無視して使用した場合は違法コピーとして犯罪になります。
なお、Ver. 1.xのライセンスをお持ちの方はお持ちのライセンス数分だけMIDP Builder2のライセンスを1050円(内訳1000円+消費税(5%))でご購入できます。
|
1コンピュータ分につき1575円(内訳1500円+消費税(5%))をお支払い下さい。
お支払い先はこちらのページに記載されています。お支払いいただきましたならば、メールにてご一報下さい。入金確認が出来次第、製品版をメールにてお送りします。
|
Q:製品版のライセンスを持っていますが、バージョンアップした時はどうなるのですか?
Ver2.x系のライセンスを購入していただいた方にはVer2.x系のバージョンアップした製品版をお送りしています。
もし、さらに機能を追加して別の製品となるVer3.x系をリリースした場合は2.x系のライセンスをお持ちの方は別途特別料金でアップグレードして頂く形になります。当然その時にはVer2.x系のライセンスを持っていない方よりも安く提供する予定です。
|
・ Ver 2.0.16 -> Ver 2.0.17の変更点
- JADファイルの改行コードがCR+LFであるとボーダフォンの一部端末でダウンロードできなくなる問題に対応。
- 各プロジェクトのbin2ディレクトリに「PROGUARD.txt」を置いておくことでProGuardに渡す設定内容を置き換える機能を追加。
・ Ver 2.0.15 -> Ver 2.0.16の変更点
- ユーザー定義属性をMANIFESTファイルに記載しておくとボーダフォン端末 でダウンロードできなくなる問題に対応。
・ Ver 2.0.14 -> Ver 2.0.15の変更点
- 各プロジェクトのbin2ディレクトリにクラスパスを記載した「CLASSPATH.txt」を置いておくことでビルド時のクラスパスを置き換える機能を追加しました。
- プリプロセッサの#defineによる置き換え時のシンボルにピリオドが使える様にしました。同時に#undefのシンボルにもピリオドが使用可能になりました。
- プリプロセッサの構文エラー時などにもファイルの出力ができるようにしました。
- エミュレータなどを実行後に落ちることがある問題を修正しました。
・ Ver 2.0.13 -> Ver 2.0.14の変更点
- プリプロセッサにJavaの行コメント付き構文(//#)でも使用できるオプション機能を追加(例: //#define DEBUG)
この機能をうまく使えばIDEにて編集しているソースコードでもプリプロセッサが使えるようになります!- 実行機能で起動したアプリケーションの標準エラーを出力エリアに表示するように機能を追加
- プリプロセッサが読み込むソースコードの改行コードがCR+LR以外の場合にエラーになる問題を修正(Ver2.0.13にて発生)
・ Ver 2.0.12 -> Ver 2.0.13の変更点
・ Ver 2.0.11 -> Ver 2.0.12の変更点
- プリプロセッサに#include構文の機能を追加
- コンパイルオプションの「-g:none」を自動的に付けないように変更
・ Ver 2.0.10 -> Ver 2.0.11の変更点
- プリプロセッサの置き換えを行う順番をシンボルの出現順に修正
- パッケージングのみを行う機能を追加
コンパイルを行わないため、リソースファイルの置き換えのみを行う場合に使うことで時間を短縮できます。・ Ver 2.0.9 -> Ver 2.0.10の変更点
- 出力エリアをTextBoxからRichTextBoxに変更。
このことにより文字数の 64KB制限をクリア- 最小化して終了した後、次回起動時にウィンドウのサイズが小さくなる問題を修正
- 構成ファイル(MIDPBuilder2.exe.config)の記述に足りない部分があっ たため、.NET Framework 1.1のみの環境で起動したときに1.0環境が必要であるとエラーメッセージが出る問題を修正
- ビルドメニューにショートカットキー(F5)を追加
- プロジェクト選択ダイアログでEnterキー押下でもプロジェクトを選択できるように機能を追加
・ Ver 2.0.8 -> Ver 2.0.9の変更点
- ビルド時に多数のコンパイルエラーが出ると固まる問題を修正
・ Ver 2.0.7 -> Ver 2.0.8の変更点
- MIDletクラスを継承していないクラスが27個以上ある時にオブファスケー ターを使ってビルドするとエラーになる不具合を修正
- 実行設定の引数にプロジェクトのディレクトリの変数を追加
・ Ver 2.0.6 -> Ver 2.0.7の変更点
- ビルド時にキャンセルできる機能を追加
- .NET Framework1.1でコンパイル
・ Ver 2.0.5 -> Ver 2.0.6の変更点
- ビルドの最後にダイアログを閉じるタイミングで内部エラーダイアログが出る時がある問題を処理方法を変えて対応
・ Ver 2.0.4 -> Ver 2.0.5の変更点
- 使用するオブファスケーターをRetroGuradからProGuardに変更
このことによりオブファスケーターを使用する上でのMIDP2.0向け開発においての制約がなくなりました。
- Windows9x系OSにてオブファスケート処理がエラーになる問題を修正
※この修正によりWindows9x系OSでは、パスに空白が使えなくなります。- オブファスケート時コマンドを出力する様に修正
- JAR、KJXファイルのサイズ表示にKByte表示を追加
- 起動毎に縦のサイズが少しずつ大きくなる問題を修正
- アイコンを変更
・ Ver 2.0.3 -> Ver 2.0.4の変更点
- 実行メニューのサブメニューが増えた際のショートカットを改善
・ Ver 2.0.2 -> Ver 2.0.3の変更点
- ユーザーから要望のあったプリプロセッサの#define定義による置き換え機能を強化しました。
・ Ver 2.0.1 -> Ver 2.0.2の変更点
- ユーザーから要望のあったプリプロセッサの#define定義による置き換え機能を追加しました。
- 同時にプリプロセッサが書き出すファイルがきちんと上書きされない問題を解決。
・ Ver 2.0 -> Ver 2.0.1の変更点
- プリプロセッサの不具合を修正
- 環境設定ダイアログのJ2SDKのルートパスを指定する個所において、右にあるボタンを押下すると落ちてしまう問題を解決。
・ Ver 1.x -> Ver 2.0の変更点
主な変更点は以下の通りです。これらの機能によりJ2ME Wireless Toolkitと置き換えて使用することができるようになりました。
- .NET Frameworkが必要になった。
- MIDPアプリケーションの新規作成ができるようになった。
- MIDPアプリケーションに指定する属性の編集ができるようになった。
- プリプロセッサによるソースコードの条件編集機能が追加された。
- コンパイルオプション指定ができるようになった。
- 外部ZIP、JARファイルを呼び出せるようになった。
- 外部エミュレータの起動設定を複数できるようになった。
|
Q: Webからダウンロードできる起動回数限定バージョンの制限を教えて下さい?
基本な機能は製品版と変わりがありませんが、起動できる回数が5回までとなっています。5回よりも多く使用したい場合は製品版のライセンスをご購入下さい。
なお、逆コンパイルなどによる改変などは一切許可しておりませんので、そのような行為を行って不正に5回よりも多く起動した場合は不正使用となり犯罪です。
|
|
Q:MIDP Builder2で使用するディレクトリを教えて下さい。
MIDP Builder2は、J2ME Wireless Toolkitが使用するディレクトリとある程度の互換性を持っています。当然、MIDP Builder2だけで使用することもできますが、J2ME Wireless ToolkitのディレクトリにインストールしてJ2ME Wireless Toolkitのプロジェクトをそのまま使用することも可能です。
CドライブのルートにインストールしたMIDP Builder2のディレクトリ構成は以下の通りになります。
C:\ + MIDPBuilder2 + bin + helpMIDP Builder2もJ2ME Wireless Toolkitと同様にプロジェクトという単位でMIDletを管理します。プロジェクトを作成するとMIDPBuilder2ディレクトリの下に「apps」ディレクトリが作成され、「apps」の下にプロジェクト名と同名のディレクトリが作成されます。
以下は、プロジェクトを作成した時のディレクトリ構造です。
C:\ + MIDPBuilder2 + apps | + プロジェクトのルート | + bin | + bin2 | + classes | + lib | + libclasses | + res | + src | + src2 | + tmpclasses + bin + help「apps」ディレクトリの下にプロジェクト名と同名のディレクトリが作成され、その下に各種ファイルを入れておくディレクトリが作成されます。
プロジェクトのディレクトリ下にできる各ディレクトリは以下の意味を持ちます。
- bin...基本となるJAD、MANIFESTファイルが入るディレクトリ。
通常ユーザーは使用しない。- bin2...ビルドしてできたJAD、MANIFEST、JAR、KJXファイルが入るディレクトリ。ビルドした後はこのディレクトリにあるファイルを使用してエミュレータや実機で走らせます。
- classes...コンパイルしてClassファイルが入るディレクトリ。
通常ユーザーは使用しない。- lib...外部ライブラリとして使用するZIP、JARファイルを入れておくディレクトリ。ZIP、JARファイル内のClassファイルはビルドしてできるJAR、KJXファイルには含まれない。
- libclasses...外部ライブラリとして使用するClassファイルを入れておくディレクトリ。ディレクトリ内のClassファイルは、ビルドしてできるJAR、KJXファイルには含まれます。
- res...ビルドしてできるJAR、KJXファイルに含める画像ファイルや音声ファイルなどのリソースファイルを入れておくディレクトリ。
- src...ユーザーが開発したJavaファイルを入れておくディレクトリ。この中にあるJavaファイルはすべてコンパイルされます。
- src2...srcディレクトリ内にあるJavaファイルを元にプリプロセッサが処理をしたJavaファイルを出力するディレクトリ。
通常ユーザーは使用しない。- tmpclasses...Preverifyツールで実行前検証処理を行ったClassファイルが入るディレクトリ。
通常ユーザーは使用しない。上記の様にプロジェクトディレクトリ内のディレクトリの意味的にもJ2ME Wireless Toolkitとある程度の互換性があるため、J2ME Wireless Toolkitと同時に使用することが可能になっています。
|
MIDP Builder2は、現在開いているプロジェクトに対し、以下の処理を行います。
1. プリプロセッサ(使用時のみ)
2. コンパイル
3. ProGuardでオブファスケート処理(ProGuard使用時のみ)
4. 実行前検証処理(Preverify)
5. JAR内のマニフェストファイルの記述の書き直し
6. JARファイル作成
7. JADファイル内の記述の書き直し
8. JAR、マニフェストファイルをUTF-8に変換(使用時のみ)
9. KJXファイル作成(使用時のみ)
10. KJXファイルにチェックバリュー付加(使用時のみ)
|
Q:J2ME Wireless Toolkitを使わないで開発したいのですが?
MIDP Builder2は、以下の4つのソフトウェアがあればJ2ME Wireless Toolkitを使う必要はありません。ただし、Preverifyツールだけを手に入れるにはMIDP FCSやCLDCをダウンロードして入手しなくてはいけないため、 J2ME Wireless ToolkitのPreverifyツールを使うのが楽だと考えられます。
- Microsoftの.NET Framework
- J2SDK 1.3以上
- Preverify(実行前検証)ツール
- MIDPのクラスライブラリ
また、基本的にJ2ME Wireless Toolkitで使用するディレクトリと互換性がありますので、もしJ2ME Wireless Toolkitでプロジェクトを作成済みなのであればJ2ME Wireless Toolkitのプロジェクトをそのまま使用する方法があります。
その方法とは、MIDP Builder2のファイルを解凍した後にできるディレクトリのbinディレクトリをJ2ME Wireless Toolkitのアプリケーションなどが入ったbinディレクトリに移動させるだけです。これだけでJ2ME Wireless ToolkitのプロジェクトをMIDP Builder2で使用できるようになります。
|
JDKのバージョンを変更したり、JDKのパスを変更していませんか?
もし上記のような変更を行った場合は環境設定ダイアログでJDKのパスなどを変更して下さい。
|
コンパイルオプションに不正なものを記載していませんか?
コンパイルのコマンドはコンソールに出力されますので、確認してみて下さい。
|
Q:ビルドしたMIDletがKDDIの一部の端末で動作しないのですが?
KDDIの一部の端末(日立製C3000Hなど)には、J2ME Wireless Toolkitで作成されたJADファイルのままでは動作しない問題があります。これはKDDIの仕様がMIDPの仕様に沿っていないことから発生する問題です。
MIDPの仕様では以下の2属性は本来JADファイルに記載する必要がありません。しかし、KDDIの仕様では、この2属性をJADファイルに記載した上でKJXファイルを作成しないといけません。これが原因で一部の端末で実行できない問題が発生するのです。この問題は、仕様を誤解釈したとも考えられますので、当分改善されることはないでしょう。
- MicroEdition-Configuration
- MicroEdition-Profile
なお、この問題はMIDP Builder2ではオプション機能として提供していますので、使いたい場合は環境設定ダイアログのキャリア拡張設定のKDDI設定にある「ビルド時にJADファイルに属性を追加する」チェックボックスをチェックして下さい。
このチェックをすることで、マニフェストファイルに記載されている上記属性指定と同じ指定をJADファイルに追加してからKJXファイルを作成します。その他、ダウンロードCGIなどの関係で動作しない場合については、SkyArtsの代表である「米川」が執筆した「Java2ME MIDPゲームクリエーターズガイド - J-PHONE、KDDI完全対応」(技術評論社から発売中)を購入して学んで下さい。
|
Q:ビルドしたMIDletをJ2ME Wireless Toolkitのエミュレータで実行する方法を教えて下さい
J2ME Wireless Toolkitのエミュレータを設定する場合は以下の様に設定します。
1. 環境設定ダイアログの実行設定タブで追加ボタンを押下し、コマンド設定ダイアログを開く。
2. コマンド設定ダイアログの設定名にわかりやすく「J2MEWTK」と入力。
3. アプリケーションテキストフィールドには実行させるエミュレータのパスを入力します。
(設定例:C:\J2mewtk\bin\emulator.exe)
4. 引数テキストフィールドには「-Xdescriptor:%PROJ-BIN%\%PROJ-NAME%.jad」と指定。もしエミュレータのデバイスを指定して起動する場合は「-Xdevice」オプションを使うことで可能になります。
例: 「-Xdescriptor:%PROJ-BIN%\%PROJ-NAME%.jad -Xdevice:DefaultColorPhone」
|
Q:ビルドしたMIDletをJ-PHONEのJ-SKY Application Emulatorを起動して実行する設定を教えて下さい
J-PHONEのエミュレータ(J-SKY Application Emulator)を設定する場合は以下の様に設定します。ただし、J-PHONEのエミュレータは起動に時間がかかるためMIDP Builder2から起動することはあまりお勧めしません。しかし、それでも行いたいという場合は以下に記載する方法を行えばMIDP Builder2からJADファイルを選択完了した状態でJ-PHONEのエミュレータを起動させることができるはずです。
※なお、ここで説明する方法は動作を保証するものではありません。 自己責任で利用して下さい。ここで説明する方法は、エミュレータを直接呼ぶのではなく、J-PHONEのエミュレータを起動するバッチファイルを指定し、引数としてJADファイルのパスを渡してあげるものです。
J-SKY Application Emulatorを「C:\J-PHONE-SDK」にインストールし、バッチファイルを「J-EmuRun.bat」というファイル名で保存したとして説明します。バッチファイルの内容はWinNT系とWin9x系で指定方法が違います。基本的には、CDコマンドでJ-SKY Application Emulatorのパスにカレントディレクトリを移動させ、javawでjbmidp.jarファイルを指定して起動します。「%1」と指定した個所にはMIDP BuilderからJADファイルのパスが渡されます。
バッチファイルではそれぞれ以下のように指定します。WindowsNT系(NT/2000)の場合
cd C:\J-PHONE-SDK
C:\WINNT\system32\javaw -jar jbmidp.jar %1Windows9x系(95/98/ME/XPノーマル)の場合cd C:\J-PHONE-SDK
C:\WINDOWS\system32\javaw -jar jbmidp.jar %1メモ帳などで上記内容を記載したならば、「J-EmuRun.bat」と名前を付けて適当な場所に保存します。 次にMIDP Builder2で以下の設定を行います。1. 環境設定ダイアログの実行設定タブで追加ボタンを押下し、コマンド設定ダイアログを開く。
2. コマンド設定ダイアログの設定名にわかりやすく「J-PHONE」と入力。
3. アプリケーションテキストフィールドにはバッチファイルのパスをフルパスで入力します。
(設定例:C:\MIDPBuilder2\bin\J-EmuRun.bat)
4. 引数テキストフィールドには「%PROJ-BIN%\%PROJ-NAME%.jad」と指定。
|
Q:ビルドしたMIDletをKDDIのezplus Emulatorを起動して実行する設定を教えて下さい
KDDIのエミュレータ(ezplus Emulator)を設定する場合は以下の様に設定します。ただし、J-PHONEのエミュレータと同様に起動に時間がかかるためMIDP Builder2から起動することはあまりお勧めしません。しかし、それでも行いたいという場合は以下に記載する方法を行えばMIDP Builder2からJADファイルを選択完了した状態でKDDIのエミュレータを起動させることができるはずです。
※なお、ここで説明する方法は動作を保証するものではありません。 自己責任で利用して下さい。ここで説明する方法は、エミュレータを直接呼ぶのではなく、KDDIのエミュレータを起動するバッチファイルを指定し、引数としてJADファイルのパスを渡してあげるものです。
ezplus Emulatorを「C:\ezplusTools」にインストールし、バッチファイルを「K-EmuRun.bat」というファイル名で保存したとして説明します。バッチファイルの内容はWinNT系とWin9x系で指定方法が違います。基本的には、CDコマンドでJ-SKY Application ezplus Emulatorのパスにカレントディレクトリを移動させ、javawでjbmidp.jarファイルを指定して起動します。「%1」と指定した個所にはMIDP BuilderからJADファイルのパスが渡されます。
バッチファイルではそれぞれ以下のように指定します。WindowsNT系(NT/2000)の場合
cd C:\ezplusTools\Tools\Emulator
C:\WINNT\system32\javaw -jar jbmidp.jar %1Windows9x系(95/98/ME/XPノーマル)の場合cd C:\ezplusTools\Tools\Emulator
C:\WINDOWS\system32\javaw -jar jbmidp.jar %1メモ帳などで上記内容を記載したならば、「K-EmuRun.bat」と名前を付けて適当な場所に保存します。 次にMIDP Builder2で以下の設定を行います。1. 環境設定ダイアログの実行設定タブで追加ボタンを押下し、コマンド設定ダイアログを開く。
2. コマンド設定ダイアログの設定名にわかりやすく「KDDI」と入力。
3. アプリケーションテキストフィールドにはバッチファイルのパスをフルパスで入力します。
(設定例:C:\MIDPBuilder2\bin\K-EmuRun.bat)
4. 引数テキストフィールドには「%PROJ-BIN%\%PROJ-NAME%.jad」と指定
|
Q:端末に表示されるMIDlet名を全角文字にしたいのですが?
J-PHONEの端末向けにMIDlet名などを全角文字で指定するにはJAD、MANIFESTファイルをUTF-8にエンコードする必要があり、KDDIの時と同様に全角文字を記載しただけでは難しいはずです。そのためMIDP Builder2では、このUTF-8に変換するオプション機能を提供しています。
使い方は、環境設定ダイアログにあるキャリア拡張設定タブにあるJ-PHONE設定内の「ビルド時にJAD、MANIFESTファイルをUTF-8に変換する」チェックボックスをチェックすればビルド時にJAD、マニフェストファイルをUTF-8にエンコードして出力されるようになります。
ただし、エンコードをしたファイルではKDDIのエミュレータやJ2MEWTKのエミュレータにおいては正常に読み込めない可能性があるため、MIDlet起動時にエラーになる可能性がありますので、注意して下さい。
|
Q:オブファスケーターで処理中にエラーになってしまうのですが?
Ver2.0.6からオブファスケーターツールをProGuardに変更しましたが、CLASSPATHの制約が厳しいため、設定ダイアログにて設定するクラスパスに「;」(セミコロン)が連続していたり、設定の最後に「;」(セミコロン)が付いているとエラーになります。この点を見直してみて下さい。
また、 MIDP Builder2においてProGuardを使用する場合にはパス指定時に以下の制約がありますので、あわせて注意して下さい。
- 空白文字が使えない
- カッコ「(」、「)」を使えない
他にもJ2MEWTK、KDDI、J-PHONEのクラスライブラリを同時にCLASSPATHに指定している場合には以下の様なメッセージが連続して表示されてエラーになることがあります。
Warning: duplicated input class [java/io/ByteArrayInputStream]
このメッセージはクラスファイルが重複していることで表示されているエラーメッセージです。
KDDIの配布しているエミュレータに含まれる「kddip.jar」はKDDIのクラスライブラリのみですが、J-PHONEの配布しているエミュレータに含まれる「stubclasses.zip」にはMIDP/CLDCのクラスライブラリも含まれています。そのため、J2MEWTKの「midpapi.zip」と内容が重複するために起こっているエラーです。
このエラーを回避するには、 J2MEWTKの「midpapi.zip」へのパスを消すことで回避できるはずです。または、プロジェクト毎にクラスパスを変更させれば回避できます。
|
ビルド失敗エラーダイアログではなく、「"ProcessDialog" という名前の、破棄されたオブジェクトにアクセスできません。」というメッセージのかかれたエラーダイアログが出ることがあります。このエラーダイアログは、ビルド中に表示しているダイアログを閉じるときにタイミングの問題で出てしまうことを確認しています。
上記問題はVer2.0.7にて対応しましたので、ほとんど出ないはずです。「〜という名前の、破棄されたオブジェクトにアクセスできません」エラーについて検索してくる方が多いので記載しますが、Javaで言うNullpointerExceptionと同義で、Null値になっている変数にアクセスした場合に発生します。
|
WindowsXPで開発をしていると「Thumbs.db」という名前のファイルがJAR(またはKJX)ファイルに入ってしまい無用にサイズが大きくなることがあります。
この「Thumbs.db」ファイルは、画像ファイルの入ったフォルダをエクスプローラーなどで縮小版表示(絵の内容を縮小表示する形態)で表示すると現れるOSのシステムファイルですが、通常は見ることができません。「Thumbs.db」ファイルの存在を知る方法を以下に記載します。1. JARファイルの拡張子を「.zip」にしてZIP解凍ツールで中身を一覧表示してみる
2. エクスプローラーなどの[ツール]メニュー -> [フォルダオプション]メニュー -> [表示]タブから「保護されたオペレーティング システム ファイルを表示しない(推奨)」チェックボックスをはずす
※なお、このチェックボックスはチェックしていることが好ましいので、使用時には注意して下さい。「Thumbs.db」ファイルは意外に重く、数十KBあります。JARファイルの中に入った時にはその半分の容量になりますが、携帯電話Java開発時には無用なサイズです。「Thumbs.db」ファイルは削除しても問題のないファイルだと思われますが、もし削除する場合は自己責任の上で行って下さい。
|
Ver2.0.15から、プロジェクト毎にクラスパスを変更する機能が追加されました。各プロジェクトのbin2ディレクトリ内にクラスパスを記載した「CLASSPATH.txt」を置いておくことでビルド時にクラスパスを切り替えて使用されます。「CLASSPATH.txt」内は改行を許可していませんので、クラスパスは改行無しで記載して下さい。パスが複数ある場合は通常のクラスパス指定時と同じように「;」で区切ります。
Ver2.0.15よりも前のバージョンをお使いの場合は以下の方法が使用できます。
ボーダフォン向け、およびKDDI向けといったようにクラスパスを切り分けて使用したいという要望はあるかと思います。一番簡単に対応する方法は、「MIDPBuilder2を複数インストールし、それぞれの設定を行う」ことです。例えば、C:\WTK104の直下にインストールしていた場合、以下のようなディレクトリ構成でインストールし、それぞれのMIDPBuilder2でクラスパスの設定をしておけば起動するMIDPBuilder2を変えることで対応することができます。
ライセンス的には、「1PCに付き1ライセンス」という決まりであるため、同一PC上に複製してインストールしても問題ありません。
C:\WTK104 + binK (KDDI向け設定MIDPBuilder2)
+ binV (ボーダフォン向け設定MIDPBuilder2)
|
MIDPBuilder2は、javacコマンドによるコンパイルを行う時にコンパイルオプションとして引数を指定できます。ただし、以下の2オプションについては指定済みのため使用できません。
-d -bootclasspath指定するとすれば以下の3つになるでしょう。
-deprecation...推奨されないメンバやクラスが使用されている時に警告を表示する -target 1.1 ...Java1.4以降のコンパイラにおいて1.1 VM および Java 2 SDK の VM と互換性があるクラスファイルを生成させる。Java1.4以降のコンパイラ使用時に指定しないとPreverify処理時にエラーになるはずです。 -g:none...デバッグ情報を生成しない。指定しない場合、クラスファイルが重くなる可能性がある。※Ver2.0.13以降から自動的に付かなくなりました。なお、Java1.5の場合は以下のオプションが必要になります。
-source 1.3...1.3を指定することでソースコードのアサーション機能をサポートしないように指定します。アサーション機能とはJava1.4で追加された機能で、現時点で携帯電話Javaには関係ありません。
|
Q:プリプロセッサ機能を使った効果的な軽量化方法を教えて下さい
MIDPBuilder2には、プリプロセッサ機能が付いています。この機能を効果的に使うことでさらにファイルの軽量化を図ることが可能になります。
携帯Javaの場合、以下のことが勧められていますが、とてもスマートとは言えません。
オブジェクト指向を無視する 定数を使わずにローカル変数にする- etc...
特に「定数を使わずにローカル変数にする」はコードの再利用をする場合にはわかりにくくなります。そのため、できるだけ定数を使いたいとは思いますが、定数が多くなれば多くなるほどファイルが重くなってきます。そこで、プリプロセッサ機能を使って定数を置き換えます。
具体的には、以下の順番で行います。1. 定数を作成して使用する。
この時、定数はstatic finalにし、使用するときにはクラス名.定数名の形式にする。このことで他のクラスでの使用、および置き換えるときに非常に有効になります。2. 軽量化の必要が出てきた時にプリプロセッサの#define構文の置き換え機能を使用して以下のことを行う
定数定義部分をコメント化 「クラス名.定数名」形式で使用している個所を置き換える付属のプリプロセッサ機能に付いているコメント行構文を有効にするオプションを使うことでIDEでコードを編集していてもエラーにはならないため、非常に効率が上がります。そして、同時にオブファスケーターを使用することでさらにコードの軽量化が期待できます。
なお、上記方法は変数定義を減らすことで軽量化を図っていますが、定数が少ない場合には思ったよりも軽量化がされない場合がありますので、色々と試してベストな方法を探してみて下さい。
|
JARファイルの中に入るMANIFESTファイルにユーザー定義属性を付けるとボーダフォン端末でダウンロードできない仕様に変更された模様です。
Ver2.0.16から MANIFESTファイルにユーザー定義属性を追加する/しないを選択できる様になりましたので、Ver2.0.16以上でビルドし直して下さい。ボーダフォンの一部端末にはJADファイルの改行コードがCR+LFであるとダウンロードに失敗するとの報告を受けました。
Ver2.0.17にて改行コードを指定する事ができる様になりましたので、 Ver2.0.17以上をお使い下さい。
|
Q:KDDI auのオープンアプリ(Java)の開発はできますか?
バージョン2.0.17以上であれば可能です。ただし、SunのWirelessToolkit(WTK)2.0以上をダウンロード&インストールし、オープンアプリ用に以下の設定を行う必要があります。
※メールアドレス変更などにより2.0.17以降のバージョンが届いていないユーザーの方は、以前ご登録頂いたメールアドレスを記載してご一報下さい。
※WTKはCLDC版を選択して下さい。CDC版ではありません。
オープンアプリ(Java)の詳細な仕様に付いてはKDDIのオープンアプリ(Java)ページを参照して下さい。
|
|
はい、できます。引数としてパスを指定でき、さらに複数のアプリケーションを登録できますので、バッチファイルなどを使用して外部コマンドの呼び出しなどを行うこともできます。
|
MIDPBuilder2はeclipseのプラグインではないため、eclipseに組み込んで使用することはできません。しかし、以下の2つの方法を使えばeclipseで編集したソースをビルドすることは可能です。
ただし、eclipseで編集する時にプロプロセッサの構文はエラーの対象になるため目障りになるかも知れませんので、コメント付き構文オプションを使用すると良いでしょう。
なお、 eclipseについてのご質問についてはご遠慮下さい。
方法1. MIDPBuilder2にeclipseのworkspaceディレクトリをJ2MEWTKのappsディレクトリの代わりに認識させる
手順
1. eclipseのディレクトリ直下にbinディレクトリを作成し、その中にMIDPBuilder2をインストールする。
2. 「MIDPBuilder2_Path.resx」ファイルをテキストエディタなどで開き、 以下の様なXMLタグ部分の「apps」を「workspace」 に置き換えます。
※同じXMLタグが複数有りますが、 dataタグのname属性値は違うので識別可能です。
<data name="AppsDirName"> <value>apps</value> </data>以下の様に太字の部分を変更します。 これで J2MEWTKのappsディレクトリの代わりに eclipseのworkspaceディレクトリを使うことを認識させることができました。<data name="AppsDirName"> <value>workspace</value> </data>3. eclipseでJavaプロジェクトを作成(MIDPライブラリなどにクラスパスを通しておいた方が好ましいでしょう。)
4. MIDPBuilder2を起動し、3で作成したプロジェクトと同名プロジェクトを作成上記手順を行うことでeclipseで編集したソースをそのままビルドすることは可能です。
なお、 上記説明はeclipseのJavaプロジェクトのソースファイルをsrcディレクトリに入れているという前提ですので、もしeclipseのプロジェクトのソースをsrcディレクトリ以外に入れて使用している場合は 「MIDPBuilder2_Path.resx」ファイルの以下のタグ部分の「src」指定を直すことで対応できます。<data name="ProjectSrcDir"> <value>src</value> </data>※eclipseがビルドして生成するCLASSファイルの入ったディレクトリとMIDPBuilder2のCLASSファイルを入れるために使用するディレクトリ(classes,tmpclasses)が同じ場合、eclipseにてコードを編集をしている時にエラーがでることがあります。このエラーは、eclipseのプロジェクトのプロパティにて「デフォルト出力フォルダー」をMIDPBuilder2の使用しない「build」などのディレクトリ名に変更することで回避できます。
方法2. eclipseで編集したソースコードをJ2MEWTKのappsディレクトリに移動させてMIDPBuilder2でビルドする
この方法は、「MIDPBuilder2_Path.resx」ファイルは編集しない代わりに多少手間がかかりますが、ません。
具体的には、ビルドする時にソースコードがMIDPBuilder2のプロジェクトディレクトリ内のsrcディレクトリに入れる手間が増えます。ソースファイルを簡単に移動させる例として実行設定にファイル移動用バッチファイルを指定して使う方法を挙げます。1. 環境設定ダイアログの実行設定タブで追加ボタンを押下し、コマンド設定ダイアログを開く。
2. コマンド設定ダイアログの設定名にわかりやすく「eclipse」と入力。
3. アプリケーションテキストフィールドには以下の内容を記載したバッチファイルのパスを入力します。
(設定例:C:\MIDPBuilder2\bin\file_move4eclipse.bat)バッチファイルの内容:copy C:\eclipse\workspace\%1\src\*java %2※「C:\eclipse\workspace\%1\src\*java」の「%1」部分は起動する時にプロジェクト名に置き換わります。
※「%2」部分は起動する時にMIDPBuilder2のプロジェクトのsrcディレクトリ名に置き換わります。
4. 引数テキストフィールドには「%PROJ-NAME% %PROJ-DIR%\src」と指定。
※この指定は、MIDPBuilder2でのプロジェクト名とプロジェクトのsrcディレクトリを指定しています。上記設定のバッチファイルを使う時には以下のことに気を付けてお使い下さい。1. eclipseのプロジェクト名とMIDPBuilder2のプロジェクト名を同じにする。2. eclipseのプロジェクトのソースファイルの置き場所が違う場合はバッチファイルを変更して下さい。
3. 上記バッチファイルはパッケージには対応していません。(対応したい場合はバッチファイルを書き換えて下さい。)
以上
|
Q:CRCチェックバリュー付加処理のみビルドとは別に行いたいのですが?
CRCチェックバリュー付加処理を行うツール(CRC4KDDI)は無料で提供していますので、コンソールアプリ版をダウンロードしてインストールしてからMIDPBuilder2の実行設定で登録して起動すれば可能です。
なお、このCRCチェックバリュー付加ツールはMIDPBuilderで採用されているものと同じです。また、同じツールはKDDIのサイトからもダウンロードできます。
|
.NET Frameworkアプリケーションはネイティブアプリケーション(C言語など)と比べるとネイティブコードに変換してから実行するため、どうしても遅くなるのが非常に気になる部分です。しかし、.NET FrameworkにはNgen(ネイティブ イメージ ジェネレータ (Ngen.exe))というツールが含まれており、このツールを使うことで高速化を図ることができます。Ngenの詳細はマイクロソフトのサイトを参照して下さい。
Ngenは、該当のEXEファイルを指定して実行するだけです。ただし、バージョンアップ時にはNgenのdeleteオプションを指定して削除する必要があります。
以下にC:\tools\MIDPBuilder2\ディレクトリ内にあるMIDPBuilder2.exeに対してNgenをする例を挙げます。
※ Ngen.exeはWindowsXPの場合「C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322」(.NET Framework1.1の場合)にあります。通常時
- コマンドプロンプトを開き、Ngen.exeのパス + 半角スペース + MIDPBuilder2.exeのパスを指定して実行
※半角スペースを含むパスを指定する場合には「"」ダブルクオートを使って囲んで下さい。
例:
"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\ngen.exe" C:\tools\MIDPBuilder2\MIDPBuilder2.exe削除時
- コマンドプロンプトを開き、Ngen.exeのパス + 半角スペース + "/delete" + MIDPBuilder2.exeのパスを指定して実行
※半角スペースを含むパスを指定する場合には「"」ダブルクオートを使って囲んで下さい。
例:
"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\ngen.exe" /delete C:\tools\MIDPBuilder2\MIDPBuilder2.exe
|
|
Windows9x系のOS(98/ME)では、以下のような制限事項があります。なお、開発にはWindowsNT系OS(NT/2000/XP)をお使いいただく方が好ましいと考えております。
1. コンパイルなどを行う際にDOSプロンプトウインドウが表示される
※これは意図していない動作であり、.NETの不具合であると判断しています。ちなみに、WindowsXPでは表示されません。
2. J-Sky Application Emulatorを起動するとMIDP Builder2のタスクがバックグラウンドで残ってしまう
※原因は不明ですが、Windows9x系OSの不具合であると判断しています。
|
|
ご意見、ご要望はいつでも受け付けていますので、こちらのアドレスまでメールでお送り下さい。良いご意見、ご要望の場合はバージョンアップの時に機能追加等で対応する可能性があります。
なお、これは返答を保証している訳ではありませんのでご了承下さい。
|
ライセンスをご購入頂いた方からの質問はいつでも受け付けています。こちらのアドレスまでメールでお送り下さい。
ライセンスをお持ちでない方からでも、ご購入に関しての質問は受け付けております。
|
Q:MIDPなどの携帯電話Javaについて学びたいのですが?
個人の方であれば私どもSkyArtsの代表である「米川」が執筆した「Java2ME MIDPゲームクリエーターズガイド - J-PHONE、KDDI完全対応」(技術評論社から発売中)を購入して学ぶことをお勧めします。サンプルが多数掲載されており、ゲーム以外にもビジネスアプリケーション開発時にも有用でしょう。
法人などの団体の方の場合は、社員教育やセミナーなどを承っておりますのでこちらのアドレスまでメールでご相談下さい。私どもは携帯電話Javaの書籍、雑誌記事執筆、開発ツール開発などの実績があります。
|
Q:eclipseでJ2MEWTKのエミュレーターを使用してデバッグしたいのですが?
J2ME Wireless Toolkit(J2MEWTK)のエミュレーターはJava Platform Debugger Architecture (JPDA)に則ったプロトコル (JDWP)を使用してリモートデバッグをすることができます。ここではeclipse(日本語パッチ適用済み)を使用してJ2MEWTKのエミュレーターに接続し、デバッグをする方法を説明します。以下で説明する順に設定などをしていくことでデバッグできるようになるはずです。
なお、MIDP Builder2自身はeclipseのプラグインではないので連携はできませんが、ビルド時などには便利に使えるはずです。
※eclipseについてのご質問についてはご遠慮下さい。1. コンパイル時に「-g:none」オプションを使用せずにビルドする。(オブファスケーターも使用しない方が良い)
※「-g:none」オプションとは、Classファイルにデバッグ情報を記載しないオプションでデバッグ時以外はClassファイルが重くなるため必ず指定することをお勧めします。2. J2MEWTKのエミュレーター起動時のオプションとして以下の記述を付け足す。
-Xdebug -Xrunjdwp:transport=dt_socket,address=8888,server=y
※通信するために「8888」ポートを使うという前提で説明していますが、もし「8888」ポートが使用済みの場合は「address=nnnn」の部分と以下の4で設定するポート番号を変えて使用して下さい。
エミュレーター起動コマンド例:
"C:\j2mewtk\bin\emulator.exe" -Xdescriptor:C:\eclipse\workspace\Kabuto\bin2\Kabuto.jad -Xdebug -Xrunjdwp:transport=dt_socket,address=8888,server=y3. エミュレーターを起動後、以下のような接続待ちメッセージが出るまで待つ。
Connecting to 127.0.0.1 on port 2800
Waiting for debugger on port 8888
KVM not ready4. eclipseの[実行]メニューから[デバッグ]メニューを選び、[リモート Java アプリケーション]を選択。
設定する内容は、接続タブの[接続プロパティー]欄のホストを「localhost」、ポートを「8888」にし、[リモート VM の終了を許可]チェックボックスにチェックをする。
※試した限りでは、 [リモート VM の終了を許可]チェックボックスにチェックしていないとエミュレーターがかなり落ちやすくなるようです。5. 後は通常のデバッグ時と同様にブレークポイントなどを使用してデバッグすることができます。
※MIDP Builder2のプリプロセッサ機能(特にinclude)を使うとソースコードの行数がずれる可能性があることを理解して使用して下さい。 オブファスケーターも同様です。
|
|
|