SkyArts.com

Home > Products > Programing tools > MIDP Builder > FAQ

MIDP Builder
Ver. 2.x

MIDP開発時に便利な書籍
Java2ME MIDPゲームクリエーターズガイド
J-PHONE、KDDI完全対応

は、技術評論社から発売中です!
サンプル多数で便利に使えますよ!

Amazon.co.jpのカスタマーレビューで
おすすめ度 星5つを頂きました!

海外で翻訳出版決定!


SkyArtsのおすすめ商品です!SkyArtsストア
(Powered by Amazon.co.jp)
基本送料無料!
  激安ショップやってます!SkyArts Shop
(激安Shopやってます)
 

-基本-


-バージョンアップ・ライセンス-


-開発-


-カスタマイズ-

-制限事項-


-その他-

 

-基本-

Q:MIDP Builder2は何ができるのですか?

 MIDP Builder2は、MIDP(Mobile Information Device Profile)アプリケーション開発ツールです。MIDPは、携帯電話などの小型機器向けJava言語仕様で世界標準の仕様です。日本国内ではボーダフォン(旧J-PHONE)とKDDIが採用しています。つまり、MIDP BuilderはボーダフォンのVアプリ(旧 J-PHONEのJavaアプリ)、KDDIのezplusが開発できるのです!
 MIDP Builderが提供する機能は、以下に挙げるように本格的な開発を行っている私どもが必要と感じた機能を一通り提供していますので、とても便利に使えるはずです。

 ※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」を使用して下さい。

Q:必要なシステムは何ですか?

MIDP Builder2を使うためには以下のソフトウェアが必要です。

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のものと互換性があります。

Q:オブファスケーターとは何ですか?

 オブファスケーターは本来、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でも紹介されています!

Q: KJXファイルとは何ですか?

 KDDI Java eXtensionの略で、KDDIのezplusのファイルです。通常のMIDletではJADファイルとJARファイルで動作させますが、ezplusはJADファイルとJARファイルを元にKJX作成コマンドを使用してKJXファイルを作成します。
 なお、KJX作成コマンドを使用するためにKDDIサイトからKJXツールをダウンロードしておく必要があります。

Q:CRCチェックバリュー付加処理とは何ですか?

 KDDIの端末は、ezplusのKJXなどのリソースファイルをダウンロードする際にCRC(Cyclic Redundancy Check)という処理を行います。この処理はファイルが正しくダウンロードできたかどうかを調べるものと考えればわかりやすいでしょう。
 端末側でこのCRC処理を行うためには特別な計算式で計算した値を予め リソースファイルに付加しておく必要があります。この処理をCRCチェックバリュー付加処理を呼んでいます。

 この処理は必須な処理でありながらKDDIの配布しているKJXツールではCRCチェックバリュー付加処理を行う機能は提供されていないため、別途ツールを用意して処理を行う必要があります。
 しかし、MIDP Builder2では、CRCチェックバリュー付加処理を行う機能を搭載しているため、チェックボックスをチェックするだけで自動的に処理します。

 CRCチェックバリュー付加処理だけを行うCRC4KDDIというソフトウェアを無料で配布していますので、MIDP Builder2と組み合わせて使うことで好きな時に処理ができるようになりさらに便利になるのではないでしょうか。

 ※A5301T以降のezplus対応端末では、XHTMLのobjectタグによるダウンロードが可能になりました。詳しくはKDDIのサイトを参照して下さい。

Q:JDK1.4でも動作しますか?

 はい、動作します。ただし、JDK1.4ではClassファイルのフォーマットが変更されているため、コンパイルの際に-target 1.1オプションを付ける必要があります。
  MIDP Builder2にはこれらのコンパイル時のオプションを指定することができる機能を提供しているため、今後のJDKのアップデートにもスマートに対応できるようになっています。

Q:エラーダイアログが出た後、操作ができないのですが?

 Webからダウンロードできる起動回数限定版は5回までしか起動できません。エラーダイアログには起動回数が越え、ライセンスを購入して下さいと記載があると思います。さらに使用をしたい場合はライセンスを購入して下さい。

Q:起動ができないのですが?

 MIDP Builder2を起動できないこととして、以下のことが考えられます。

Q:なぜ.NET Frameworkが必要なのですか?

 MIDP Builder Ver.1.xはJavaアプリケーションでした。しかし、そのことにより以下の問題点がありました。

  これらのことからユーザーの開発効率をあげるためにはVer1.xを引き継いでJavaアプリケーションのままバージョンアップを行うことは難しいと判断しました。

 開発環境としてエミュレータなどが一番揃っているのはWindowsであり、Ver1.xのユーザーはWindowsを使っていると判断しています。そのため、Ver2.xはより使いやすいWindowsアプリケーションとして提供することを最優先に考えました。
 そして今後のWindowsアプリケーションの主流が.NET Frameworkになると考え、いち早く.NET Framework対応のアプリケーションとして一から開発を行いましたので、.NET Frameworkが必要となります。
 .NET Framework必須のソフトウェアは今後どんどん増えていきますので、この機会にインストールしてみていかがでしょうか。

Q:プリプロセッサ機能だけを使いたいのですが?

 MIDP Builder2、および姉妹製品のDoJa Builder2で使用されているプリプロセッサ・エンジンは組み込み式であるため、プリプロセッサ機能だけを使用することはできません。
 しかし、 MIDP Builder2で使用されているプリプロセッサ・エンジンのJava移植版である「PP4J」という製品があります。試用版がダウンロードできますので、検討してみて下さい。

Q:Windows Vistaで使用できますか?

はい、できます。
ただし、「MIDPBuilder2.exe.config」をテキストエディタで開き、「supportedRuntime」タグの下に以下のタグを追加する必要があります。

<supportedruntime version="v2.0.50727" />
<supportedRuntime version="v2.0.40607" />
-バージョンアップ・ライセンス-

Q:ライセンスについて教えて下さい

 商用、非商用を問わず継続した使用をする場合は、1コンピュータ分につき1575円(内訳1500円+消費税(5%))をお支払い下さい。 つまり、2台のコンピュータで使う場合は2ライセンス購入していただくことになります。このことを無視して使用した場合は違法コピーとして犯罪になります。

 なお、Ver. 1.xのライセンスをお持ちの方はお持ちのライセンス数分だけMIDP Builder2のライセンスを1050円(内訳1000円+消費税(5%))でご購入できます。

Q:ライセンスを購入したいのですが?

 1コンピュータ分につき1575円(内訳1500円+消費税(5%))をお支払い下さい。
 お支払い先はこちらのページに記載されています。お支払いいただきましたならば、メールにてご一報下さい。入金確認が出来次第、製品版をメールにてお送りします。

Q:製品版のライセンスを持っていますが、バージョンアップした時はどうなるのですか?

 Ver2.x系のライセンスを購入していただいた方にはVer2.x系のバージョンアップした製品版をお送りしています。
 もし、さらに機能を追加して別の製品となるVer3.x系をリリースした場合は2.x系のライセンスをお持ちの方は別途特別料金でアップグレードして頂く形になります。当然その時にはVer2.x系のライセンスを持っていない方よりも安く提供する予定です。

Q:バージョンアップの変更点は?

・ Ver 2.0.16 -> Ver 2.0.17の変更点

・ Ver 2.0.15 -> Ver 2.0.16の変更点

・ Ver 2.0.14 -> Ver 2.0.15の変更点

・ Ver 2.0.13 -> Ver 2.0.14の変更点

・ Ver 2.0.12 -> Ver 2.0.13の変更点

・ Ver 2.0.11 -> Ver 2.0.12の変更点 ・ Ver 2.0.10 -> Ver 2.0.11の変更点 ・ Ver 2.0.9 -> Ver 2.0.10の変更点 ・ Ver 2.0.8 -> Ver 2.0.9の変更点 ・ Ver 2.0.7 -> Ver 2.0.8の変更点 ・ Ver 2.0.6 -> Ver 2.0.7の変更点 ・ Ver 2.0.5 -> Ver 2.0.6の変更点 ・ Ver 2.0.4 -> Ver 2.0.5の変更点

・ Ver 2.0.3 -> Ver 2.0.4の変更点

・ Ver 2.0.2 -> Ver 2.0.3の変更点

・ Ver 2.0.1 -> Ver 2.0.2の変更点

・ Ver 2.0 -> Ver 2.0.1の変更点

・ Ver 1.x -> Ver 2.0の変更点
  主な変更点は以下の通りです。これらの機能によりJ2ME Wireless Toolkitと置き換えて使用することができるようになりました。

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
      + help

 MIDP Builder2もJ2ME Wireless Toolkitと同様にプロジェクトという単位でMIDletを管理します。プロジェクトを作成するとMIDPBuilder2ディレクトリの下に「apps」ディレクトリが作成され、「apps」の下にプロジェクト名と同名のディレクトリが作成されます。

 以下は、プロジェクトを作成した時のディレクトリ構造です。

C:\
  + MIDPBuilder2
      + apps
     |    + プロジェクトのルート
     |        + bin
     |        + bin2
     |        + classes
     |        + lib
     |        + libclasses
     |        + res
     |        + src
     |        + src2
     |        + tmpclasses     
      + bin
      + help

 「apps」ディレクトリの下にプロジェクト名と同名のディレクトリが作成され、その下に各種ファイルを入れておくディレクトリが作成されます。
 プロジェクトのディレクトリ下にできる各ディレクトリは以下の意味を持ちます。

 上記の様にプロジェクトディレクトリ内のディレクトリの意味的にもJ2ME Wireless Toolkitとある程度の互換性があるため、J2ME Wireless Toolkitと同時に使用することが可能になっています。

Q:ビルド時に内部的に行われる処理内容を教えて下さい。

 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ツールを使うのが楽だと考えられます。

 また、基本的にJ2ME Wireless Toolkitで使用するディレクトリと互換性がありますので、もしJ2ME Wireless Toolkitでプロジェクトを作成済みなのであればJ2ME Wireless Toolkitのプロジェクトをそのまま使用する方法があります。
 その方法とは、MIDP Builder2のファイルを解凍した後にできるディレクトリのbinディレクトリをJ2ME Wireless Toolkitのアプリケーションなどが入ったbinディレクトリに移動させるだけです。これだけでJ2ME Wireless ToolkitのプロジェクトをMIDP Builder2で使用できるようになります。

Q:ビルドの途中で止まってしまうのですが?

 JDKのバージョンを変更したり、JDKのパスを変更していませんか?
 もし上記のような変更を行った場合は環境設定ダイアログでJDKのパスなどを変更して下さい。

Q:コンパイルがきちんとできないのですが?

 コンパイルオプションに不正なものを記載していませんか?
 コンパイルのコマンドはコンソールに出力されますので、確認してみて下さい。

Q:ビルドしたMIDletがKDDIの一部の端末で動作しないのですが?

 KDDIの一部の端末(日立製C3000Hなど)には、J2ME Wireless Toolkitで作成されたJADファイルのままでは動作しない問題があります。これはKDDIの仕様がMIDPの仕様に沿っていないことから発生する問題です。
 MIDPの仕様では以下の2属性は本来JADファイルに記載する必要がありません。しかし、KDDIの仕様では、この2属性をJADファイルに記載した上でKJXファイルを作成しないといけません。これが原因で一部の端末で実行できない問題が発生するのです。この問題は、仕様を誤解釈したとも考えられますので、当分改善されることはないでしょう。

 なお、この問題は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 %1

Windows9x系(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 %1
Windows9x系(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」へのパスを消すことで回避できるはずです。または、プロジェクト毎にクラスパスを変更させれば回避できます。

Q:ビルドの最後にエラーダイアログが出ますが?

 ビルド失敗エラーダイアログではなく、「"ProcessDialog" という名前の、破棄されたオブジェクトにアクセスできません。」というメッセージのかかれたエラーダイアログが出ることがあります。このエラーダイアログは、ビルド中に表示しているダイアログを閉じるときにタイミングの問題で出てしまうことを確認しています。
 上記問題はVer2.0.7にて対応しましたので、ほとんど出ないはずです。

  「〜という名前の、破棄されたオブジェクトにアクセスできません」エラーについて検索してくる方が多いので記載しますが、Javaで言うNullpointerExceptionと同義で、Null値になっている変数にアクセスした場合に発生します。

Q:WindowsXPで開発する上での注意点

WindowsXPで開発をしていると「Thumbs.db」という名前のファイルがJAR(またはKJX)ファイルに入ってしまい無用にサイズが大きくなることがあります。
  この「Thumbs.db」ファイルは、画像ファイルの入ったフォルダをエクスプローラーなどで縮小版表示(絵の内容を縮小表示する形態)で表示すると現れるOSのシステムファイルですが、通常は見ることができません。「Thumbs.db」ファイルの存在を知る方法を以下に記載します。

1. JARファイルの拡張子を「.zip」にしてZIP解凍ツールで中身を一覧表示してみる
2. エクスプローラーなどの[ツール]メニュー -> [フォルダオプション]メニュー -> [表示]タブから「保護されたオペレーティング システム ファイルを表示しない(推奨)」チェックボックスをはずす
 ※なお、このチェックボックスはチェックしていることが好ましいので、使用時には注意して下さい。

 「Thumbs.db」ファイルは意外に重く、数十KBあります。JARファイルの中に入った時にはその半分の容量になりますが、携帯電話Java開発時には無用なサイズです。「Thumbs.db」ファイルは削除しても問題のないファイルだと思われますが、もし削除する場合は自己責任の上で行って下さい。

Q:複数のクラスパスを切り替えて使用したいのですが?

 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)

 

Q:コンパイルオプションについて教えて下さい?

 MIDPBuilder2は、javacコマンドによるコンパイルを行う時にコンパイルオプションとして引数を指定できます。ただし、以下の2オプションについては指定済みのため使用できません。

 指定するとすれば以下の3つになるでしょう。

 なお、Java1.5の場合は以下のオプションが必要になります。

Q:プリプロセッサ機能を使った効果的な軽量化方法を教えて下さい

 MIDPBuilder2には、プリプロセッサ機能が付いています。この機能を効果的に使うことでさらにファイルの軽量化を図ることが可能になります。
 携帯Javaの場合、以下のことが勧められていますが、とてもスマートとは言えません。

 特に「定数を使わずにローカル変数にする」はコードの再利用をする場合にはわかりにくくなります。そのため、できるだけ定数を使いたいとは思いますが、定数が多くなれば多くなるほどファイルが重くなってきます。そこで、プリプロセッサ機能を使って定数を置き換えます。
 具体的には、以下の順番で行います。

1. 定数を作成して使用する。
  この時、定数はstatic finalにし、使用するときにはクラス名.定数名の形式にする。このことで他のクラスでの使用、および置き換えるときに非常に有効になります。

2. 軽量化の必要が出てきた時にプリプロセッサの#define構文の置き換え機能を使用して以下のことを行う

 付属のプリプロセッサ機能に付いているコメント行構文を有効にするオプションを使うことでIDEでコードを編集していてもエラーにはならないため、非常に効率が上がります。そして、同時にオブファスケーターを使用することでさらにコードの軽量化が期待できます。
  なお、上記方法は変数定義を減らすことで軽量化を図っていますが、定数が少ない場合には思ったよりも軽量化がされない場合がありますので、色々と試してベストな方法を探してみて下さい。

Q:ボーダフォン端末でダウンロードできないのですが?

 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)ページを参照して下さい。

-カスタマイズ-

Q:エミュレータの代わりにバッチファイルを起動できますか?

 はい、できます。引数としてパスを指定でき、さらに複数のアプリケーションを登録できますので、バッチファイルなどを使用して外部コマンドの呼び出しなどを行うこともできます。

Q:eclipseと組み合わせて使用したいのですが?

 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のサイトからもダウンロードできます。

Q:高速化について

 .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の場合)にあります。

通常時

削除時

-制限事項-

Q:Windows9x系OSの制限事項

 Windows9x系のOS(98/ME)では、以下のような制限事項があります。なお、開発にはWindowsNT系OS(NT/2000/XP)をお使いいただく方が好ましいと考えております。

1. コンパイルなどを行う際にDOSプロンプトウインドウが表示される
 ※これは意図していない動作であり、.NETの不具合であると判断しています。ちなみに、WindowsXPでは表示されません。
2. J-Sky Application Emulatorを起動するとMIDP Builder2のタスクがバックグラウンドで残ってしまう
 ※原因は不明ですが、Windows9x系OSの不具合であると判断しています。

-その他-

Q:MIDP Builder2に要望があるのですが?

 ご意見、ご要望はいつでも受け付けていますので、こちらのアドレスまでメールでお送り下さい。良いご意見、ご要望の場合はバージョンアップの時に機能追加等で対応する可能性があります。
 なお、これは返答を保証している訳ではありませんのでご了承下さい。

Q:質問があるのですが?

 ライセンスをご購入頂いた方からの質問はいつでも受け付けています。こちらのアドレスまでメールでお送り下さい。
 ライセンスをお持ちでない方からでも、ご購入に関しての質問は受け付けております。

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=y

3. エミュレーターを起動後、以下のような接続待ちメッセージが出るまで待つ。

Connecting to 127.0.0.1 on port 2800
Waiting for debugger on port 8888
KVM not ready

4. eclipseの[実行]メニューから[デバッグ]メニューを選び、[リモート Java アプリケーション]を選択。
 設定する内容は、接続タブの[接続プロパティー]欄のホストを「localhost」、ポートを「8888」にし、[リモート VM の終了を許可]チェックボックスにチェックをする。
 ※試した限りでは、 [リモート VM の終了を許可]チェックボックスにチェックしていないとエミュレーターがかなり落ちやすくなるようです。

5. 後は通常のデバッグ時と同様にブレークポイントなどを使用してデバッグすることができます。
※MIDP Builder2のプリプロセッサ機能(特にinclude)を使うとソースコードの行数がずれる可能性があることを理解して使用して下さい。 オブファスケーターも同様です。


ご意見、ご要望をこちらのアドレスまでお寄せください。
Copyright(C) 1997-2007 SkyArts.com. All Rights Reserved.