Home > Products > Programing tools > DoJa Builder > FAQ | |
|
DoJa
Builder
Ver 2.x
MIDP開発時に便利な書籍 海外で翻訳出版決定! |
|
-基本-
-バージョンアップ・ライセンス-
-開発-
-カスタマイズ-
-その他-
|
|
DoJa Builderは、DoJa(iアプリ)アプリケーション開発ツールです。 iアプリは、NTT DoCoMoの携帯電話端末上で動作するJavaアプリケーションです。 つまり、DoJa BuilderはNTT DoCoMoのiアプリが開発できるのです!
DoJa Builderが提供する機能は、以下に挙げるように本格的な開発を行っている私どもが必要と感じた機能を一通り提供していますので、とても便利に使えるはずです。
- DoJaアプリケーションの新規作成
- DoJaアプリケーションに指定する属性の編集
- プリプロセッサによるソースコードの条件編集機能
- コンパイルオプション指定
- オブファスケーターを使用したファイルの軽量化※1
- 外部Classファイルなどのライブラリを使用した開発
- 外部エミュレータの起動
- ビルド後のファイルサイズ表示
- CLASSファイルとリソースファイルのパッケージング※2
※1 Ver2.0.4からDoJa2.0のライブラリを使用している場合でも使用できるよ うになりました。
※2 Ver2.0.10からパッケージングだけを行う機能が追加されました。DoJa Builder Ver. 1.xではできなかった新規作成や属性編集、プリプロセッサなどの機能が追加され、より使いやすくなりました。このことによりJ2ME Wireless Toolkit for DoJaと置き換えて使用することが可能となっています。
使用するディレクトリに関してもJ2ME Wireless Toolkitと互換性があるため同時に使用することが可能です。なお、DoJa Builder2はVer 1.xの設定ファイルとの互換性はありません。
現在、起動回数限定バージョンがダウンロードできますので、DoJa Builder2の便利さを理解するためにも是非試用してみて下さい。
J-PHONEのJavaアプリ、KDDIのezplusなどのMIDPアプリ開発には姉妹製品の「MIDP Builder2」を使用して下さい。
|
DoJa Builderを使うためには以下のソフトウェアが必要です。
- Microsoftの.NET Framework(必須)
※Windows Updateなどを使用することでMicrosoftサイトから無料でダウンロードできます。
※ただし、現在はWindows98/ME/NT4/2000/XPのみのサポートになります。- J2SDK 1.3以上 (必須)
- Preverify(実行前検証)ツール (必須)
J2ME Wireless Toolkit for DoJaに付属のツールで可。- DoJaのクラスライブラリ (必須)
J2ME Wireless Toolkit for DoJaに付属のクラスライブラリ、Zentek Technologyのi-JADEに付属のライブラリで可。- ProGuard 1.5 (任意)
※GPLで配布されているオブファスケーターツール(無料)
|
Q:J2ME Wireless Toolkit for DoJaと同時に使用できますか?
はい、できます。
DoJa Builder2は、J2ME Wireless Toolkit for DoJaのディレクトリ構造とある程度互換性を持たせています。そのため、J2ME Wireless Toolkit for DoJaで作成したプロジェクトをそのまま使用することができます。
また、DoJa Builder2では、独自ディレクトリを作成して使用するためJ2ME Wireless Toolkit for DoJaの使うディレクトリやファイルとぶつかることはありません。なお、DoJa Builder Ver 1.xはJ2ME Wireless Toolkit for DoJaが作成したプロジェクトを使用していましたが、DoJa Builder2はJ2ME Wireless Toolkit for DoJaとは別にプロジェクトを作成することができます。そして、そのプロジェクトはJ2ME Wireless Toolkit for DoJaのものと互換性があります。
|
オブファスケーターは本来、Classファイルの中に記載してあるクラス名や変数名を「a」や「b」のように短い名前にして可読性を悪くするものなのですが、副産物としてClassファイルが軽くなります。
DoJa Builderでは、オブファスケーターとしてGPLで配布されているProGuard(無料)を使用します。このProGuardを使用して試したところ、ファイルサイズを30〜500バイト以上も減らすことができました!
PC向けの開発を主に行っている方に取っては30〜500バイト以上減らすことができても大したことはありませんが、容量制限が厳しく、通信速度も遅い携帯電話向けに開発を行う際にはこのファイルサイズ削減機能はとても大きいものになります! ファイルサイズの削減は通信時間の削減であり、通信費の削減にも繋がるのです!この機能を使えばファイルの軽量化のためにクラス名や変数名などを短くする努力も必要ありません。そしてクラス名が短くなってもJAMファイルに記載する内容はDoJa Builderが自動的に書き換えてくれるので、是非使用することをお勧めします。
当然、ProGuardの英語のマニュアルを読む必要もありません。ダウンロードして適当な場所に解凍するだけの手間だけで使用できるようになります!なお、このオブファスケーターによる最適化は、SunのJ2ME Tech Tipsでも紹介されています!
※Ver2.0.4からDoJa2.0のライブラリを使用している場合でも使用できるようになりました。
|
はい、動作します。ただし、JDK1.4ではClassファイルのフォーマットが変更されているため、コンパイルの際に-target 1.1オプションを付ける必要があります。
DoJa Builder2にはこれらのコンパイル時のオプションを指定することができる機能を提供しているため、今後のJDKのアップデートにもスマートに対応できるようになっています。
|
Webからダウンロードできる起動回数限定版は5回までしか起動できません。エラーダイアログには起動回数が越え、ライセンスを購入して下さいと記載があると思います。さらに使用をしたい場合はライセンスを購入して下さい。
|
DoJa Builder2を起動できないこととして、以下のことが考えられます。
- お使いのPCに.NET Frameworkの実行環境がインストールされていない
DoJa 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.6からは.NET Framework1.1でコンパイルしています。そのため、もし1.0のみがお使いのPCにインストールされている場合には英語で書かれたエラーダイアログが表示されるはずです。
この問題を解決するには以下の方法があります。
- 「DoJaBuilder2.exe」ファイルがあるディレクトリに「DoJaBuilder2.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を消してしまうことをお勧めします。
|
DoJa 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必須のソフトウェアは今後どんどん増えていきますので、この機会にインストールしてみていかがでしょうか。
|
DoJa Builder2、および姉妹製品のMIDP Builder2で使用されているプリプロセッサ・エンジンは組み込み式であるため、プリプロセッサ機能だけを使用することはできません。
しかし、 DoJa Builder2で使用されているプリプロセッサ・エンジンのJava移植版である「PP4J」という製品があります。試用版がダウンロードできますので、検討してみて下さい。
|
はいできます。
ただし、DoJa 2.0よりも後のバージョンで追加された属性についてはDoJa Builder2 Ver2.0.6から追加された「ユーザー定義属性」として指定することになります。その代わりに今後のDoJaのバージョンアップにより追加された属性にも容易に対応できます。
なお、ユーザー定義属性は、基本的にすでに定義されている属性以外は何でも指定できます。もし、属性を入力するのが面倒な場合は、プロジェクトのbinディレクトリ内にあるJAMファイルに属性を記載してからプロジェクトを開けば反映されます。
|
はい、できます。
ただし、「DoJaBuilder2.exe.config」をテキストエディタで開き、「supportedRuntime」タグの下に以下のタグを追加する必要があります。<supportedruntime version="v2.0.50727" /> <supportedRuntime version="v2.0.40607" />
|
|
商用、非商用を問わず継続した使用をする場合は、1コンピュータ分につき1575円(内訳1500円+消費税(5%))をお支払い下さい。 つまり、2台のコンピュータで使う場合は2ライセンス購入していただくことになります。このことを無視して使用した場合は違法コピーとして犯罪になります。
なお、Ver. 1.xのライセンスをお持ちの方はお持ちのライセンス数分だけDoJa Builder2のライセンスを1050円(内訳1000円+消費税(5%))でご購入できます。
|
1コンピュータ分につき1575円(内訳1500円+消費税(5%))をお支払い下さい。
お支払い先はこちらのページに記載されています。お支払いいただきましたならば、メールにてご一報下さい。入金確認が出来次第、製品版をメールにてお送りします。
|
Q: 製品版のライセンスを持っていますが、バージョンアップした時はどうなるのですか?
Ver2.x系のライセンスを購入していただいた方にはVer2.x系のバージョンアップした製品版をお送りしています。
もし、さらに機能を追加して別の製品となるVer3.x系をリリースした場合は2.x系のライセンスをお持ちの方は別途特別料金でアップグレードして頂く形になります。当然その時にはVer2.x系のライセンスを持っていない方よりも安く提供する予定です。
|
・ Ver 2.0.12 -> Ver 2.0.13の変更点
- 各プロジェクトのbin2ディレクトリにクラスパスを記載した「CLASSPATH.txt」を置いておくことでビルド時のクラスパスを置き換える機能を追加しました。
- プリプロセッサの#defineによる置き換え時のシンボルにピリオドが使える様にしました。同時に#undefのシンボルにもピリオドが使用可能になりました。
- プリプロセッサの構文エラー時などにもファイルの出力ができるようにしました。
- エミュレータなどを実行後に落ちることがある問題を修正しました。
・ Ver 2.0.11 -> Ver 2.0.12の変更点
- プリプロセッサにJavaの行コメント付き構文(//#)でも使用できるオプシ ョン機能を追加(例: //#define DEBUG)
この機能をうまく使えばIDEにて編集しているソースコードでもプリプロセッサが使えるようになります!- 実行機能で起動したアプリケーションの標準エラーを出力エリアに表示するように機能を追加
- プリプロセッサが読み込むソースコードの改行コードがCR+LR以外の場合 にエラーになる問題を修正(Ver2.0.11にて発生)
・ Ver 2.0.10 -> Ver 2.0.11の変更点
- プリプロセッサに#include構文の機能を追加
- コンパイルオプションの「-g:none」を自動的に付けないように変更
・ Ver 2.0.9 -> Ver 2.0.10の変更点
- プリプロセッサの置き換えを行う順番をシンボルの出現順に修正
- パッケージングのみを行う機能を追加
コンパイルを行わないため、リソースファイルの置き換えのみを行う場合に使うことで時間を短縮できます。・ Ver 2.0.8 -> Ver 2.0.9の変更点
- 出力エリアをTextBoxからRichTextBoxに変更。
このことにより文字数の 64KB制限をクリア- 最小化して終了した後、次回起動時にウィンドウのサイズが小さくなる問題を修正
- 構成ファイル(DoJaBuilder2.exe.config)の記述に足りない部分があっ たため、.NET Framework 1.1のみの環境で起動したときに1.0環境が必要であるとエラーメッセージが出る問題を修正
- ビルドメニューにショートカットキー(F5)を追加
- プロジェクト選択ダイアログでEnterキー押下でもプロジェクトを選択できるように機能を追加
・ Ver 2.0.7 -> Ver 2.0.8の変更点
- ビルド時に多数のコンパイルエラーが出ると固まる問題を修正
・ Ver 2.0.6 -> Ver 2.0.7の変更点
- IApplicationクラスを継承していないクラスが27個以上ある時にオブファ スケーターを使ってビルドするとエラーになる不具合を修正
- 実行設定の引数にプロジェクトのディレクトリの変数を追加
・ Ver 2.0.5 -> Ver 2.0.6の変更点
- JAMファイルにユーザー定義属性を追加できる様に機能追加。
この変更により今後のDoJaバージョンアップにも対応できます。- ビルドの最後にタイミングの問題で内部エラーダイアログが出るのを処理方法を変えて対応
- ビルド時にキャンセルできる様に機能追加
- .NET Framework1.1でコンパイル
・ Ver 2.0.4 -> Ver 2.0.5の変更点
- オブファスケーターを使用する場合にCLASSPATHの指定方法によってエラ ーになる問題を修正
このことにより各種パスに空白は使えなくなりましたのでご注意下さい。- JARファイルのサイズ表示にKByte表示を追加
- 起動毎に縦のサイズが少しずつ大きくなる問題を修正
- アイコンを変更
・ Ver 2.0.3 -> Ver 2.0.4の変更点
- 使用するオブファスケーターをRetroGuradからProGuardに変更
このことによりオブファスケーターを使用する上でのDoJa2.0(504i)向け開発においての制約がなくなりました。・ Ver 2.0.2 -> Ver 2.0.3の変更点
- 実行メニューのサブメニューが増えた際のショートカットを改善
・ Ver 2.0.1 -> Ver 2.0.2の変更点
- ユーザーから要望のあったプリプロセッサの#define定義による置き換え機能を強化しました。
・ Ver 2.0 -> Ver 2.0.1の変更点
- ユーザーから要望のあったプリプロセッサの#define定義による置き換え機能を追加しました。
- 同時にプリプロセッサが書き出すファイルがきちんと上書きされない問題を解決。
・ Ver 1.x -> Ver 2.0の変更点
主な変更点は以下の通りです。これらの機能によりJ2ME Wireless Toolkit for DoJaと置き換えて使用することができるようになりました。
- .NET Frameworkが必要になった。
- iアプリの新規作成ができるようになった。
- DoJaアプリに指定する属性の編集ができるようになった。
- プリプロセッサによるソースコードの条件編集機能が追加された。
- コンパイルオプション指定ができるようになった。
- 外部ZIP、JARファイルを呼び出せるようになった。
- 外部エミュレータの起動設定を複数できるようになった。
|
Q: Webからダウンロードできる起動回数限定バージョンの制限を教えて下さい?
基本な機能は製品版と変わりがありませんが、起動できる回数が5回までとなっています。5回よりも多く使用したい場合は製品版のライセンスをご購入下さい。
なお、逆コンパイルなどによる改変などは一切許可しておりませんので、そのような行為を行って不正に5回よりも多く起動した場合は不正使用となります。
|
|
Q:DoJa Builderで使用するディレクトリを教えて下さい。
DoJa Builder2のディレクトリ構成はJ2ME Wireless Toolkit for DoJaとある程度の互換性があります。そのため、ディレクトリ構成を把握しておくことでJ2ME Wireless Toolkit for DoJaのプロジェクトをそのままDoJa Builder2での開発に使用することもできます。
CドライブのルートにインストールしたDoJa Builder2のディレクトリ構成は以下の通りになります。
C:\ + DoJaBuilder2 + bin + helpDoJa Builder2もJ2ME Wireless Toolkit for DoJaと同様にプロジェクトという単位でiアプリを管理します。プロジェクトを作成するとDoJaBuilder2ディレクトリの下に「apps」ディレクトリが作成され、「apps」の下にプロジェクト名と同名のディレクトリが作成されます。
以下は、 プロジェクトを作成した時のディレクトリ構造です。
C:\ + DoJaBuilder2 + apps | + プロジェクトのルート | + bin | + bin2 | + classes | + lib | + libclasses | + res | + src | + src2 | + tmpclasses + bin + help「apps」ディレクトリの下にプロジェクト名と同名のディレクトリが作成され、その下に各種ファイルを入れておくディレクトリが作成されました。
プロジェクトのディレクトリ下にできる各ディレクトリは以下の意味を持ちます。
- bin...基本となるJAMファイルが入るディレクトリ。
通常ユーザーは使用しない。- bin2...ビルドしてできたJAM、JARファイルが入るディレクトリ。ビルドした後はこのディレクトリにあるファイルを使用してエミュレータや実機で走らせます。
- classes...コンパイルしてClassファイルが入るディレクトリ。
通常ユーザーは使用しない。- lib...外部ライブラリとして使用するZIP、JARファイルを入れておくディレクトリ。ZIP、JARファイル内のClassファイルはビルドしてできるJARファイルには含まれない。
- libclasses...外部ライブラリとして使用するClassファイルを入れておくディレクトリ。ディレクトリ内のClassファイルは、ビルドしてできるJARファイルには含まれます。
- res...ビルドしてできるJAR、KJXファイルに含める画像ファイルや音声ファイルなどのリソースファイルを入れておくディレクトリ。
- src...ユーザーが開発したJavaファイルを入れておくディレクトリ。この中にあるJavaファイルはすべてコンパイルされます。
- src2...srcディレクトリ内にあるJavaファイルを元にプリプロセッサが処理をしたJavaファイルを出力するディレクトリ。
通常ユーザーは使用しない。- tmpclasses...Preverifyツールで実行前検証処理を行ったClassファイルが入るディレクトリ。
通常ユーザーは使用しない。上記の様にプロジェクトディレクトリ内のディレクトリの意味的にもJ2ME Wireless Toolkit for DoJaとある程度の互換性があるため、J2ME Wireless Toolkit for DoJaと同時に使用することが可能になっています。
|
DoJa Builderは、現在開いているプロジェクトに対し、以下の処理を行います。
1. プリプロセッサ(使用時のみ)
2. コンパイル
3. ProGuardでオブファスケート処理(ProGuard使用時のみ)
4. 実行前検証処理(Preverify)
5. JARファイル作成
6. JAMファイル内の記述の書き直し
|
Q: J2ME Wireless Toolkit for DoJaを使わないで開発したいのですが?
DoJa Builder2は、以下の4つのソフトウェアがあればJ2ME Wireless Toolkit for DoJaを使う必要はありません。ただし、Preverifyツールだけを手に入れるにはMIDP FCSやCLDCをダウンロードして入手しなくてはいけないため、 J2ME Wireless Toolkit for DoJaのPreverifyツールを使うのが楽だと考えられます。
- Microsoftの.NET Framework
- J2SDK 1.3以上
- Preverify(実行前検証)ツール
- DoJaのクラスライブラリ
また、基本的にJ2ME Wireless Toolkit for DoJaで使用するディレクトリと互換性がありますので、もしJ2ME Wireless Toolkit for DoJaでプロジェクトを作成済みなのであればJ2ME Wireless Toolkit for DoJaのプロジェクトをそのまま使用する方法があります。
その方法とは、DoJa Builder2のファイルを解凍した後にできるディレクトリのbinディレクトリをJ2ME Wireless Toolkit for DoJaのアプリケーションなどが入ったbinディレクトリに移動させるだけです。これだけでJ2ME Wireless Toolkit for DoJaのプロジェクトをDoJa Builder2で使用できるようになります。
|
JDKのバージョンを変更したり、JDKのパスを変更していませんか?
もし上記のような変更を行った場合は環境設定ダイアログでJDKのパスなどを変更して下さい。
|
コンパイルオプションに不正なものを記載していませんか?
コンパイルのコマンドはコンソールに出力されますので、確認してみて下さい。
|
Q:ビルドしたiアプリをZentekTechnologyのi-JADEで実行する設定を教えて下さい
Zentek Technologyのi-JADEを設定する場合は以下の様に設定します。なお、N503iのエミュレータを設定する例を記載します。1. 環境設定ダイアログの実行設定タブで追加ボタンを押下し、コマンド設定ダイアログを開く。
2. コマンド設定ダイアログの設定名にわかりやすく「N503i」と入力。
3. アプリケーションテキストフィールドには以下の内容を記載したバッチファイルのパスを入力します。
(設定例:C:\DoJaBuilder\bin\iJADE.bat)バッチファイルの内容:java -jar C:\i-jade\i-jade-%1.jar %24. 引数テキストフィールドには「n %PROJ-BIN%\%PROJ-NAME%.jam」と指定。
※%1にnを指定するとN503i、pにするとP503iのエミュレータを呼び出すことができます。
|
Q:オブファスケーターで処理中にエラーになってしまうのですが?
Ver2.0.4以降にてProGuardを使用している場合のエラーについては、CLASSPATHの制約が厳しいため、設定ダイアログにて設定するクラスパスが以下の場合にはエラーになります。見直してみて下さい。
- 「;」(セミコロン)が連続している
- 設定の最後に「;」(セミコロン)が付いている
- 同じクラスの含まれるライブラリへのパスがある(クラスが重複している)
最後の項目によりエラーの場合には以下の様なメッセージが連続して表示されてエラーになることがあります。この場合はプロジェクト毎にクラスパスを変更させれば回避できます。
Warning: duplicated input class [java/io/ByteArrayInputStream]
また、 DoJa Builder2においてProGuardを使用する場合にはパス指定時に以下の制約がありますので、あわせて注意して下さい。
- 空白文字が使えない
- カッコ「(」、「)」を使えない
Ver2.0.3までは、DoJa Builderが使用しているオブファスケーターには「java.lang.Class.forName(String)メソッドを使用している場合はオブファスケート処理ができない」という制約があります。そのためDoJa 1.0(503i向け)のクラスライブラリを使っている分には問題ないのですが、DoJa 2.0(504i向け)のクラスライブラリを使用するとこの制約に該当してしまうためエラーになってしまうことがありました。
※Ver2.0.4からは使用しているオブファスケーターを変更したため、DoJa 2.0(504i向け)のクラスライブラリを使用していてもこの制約は無くなりました。
|
Q:ビルドしたiアプリをiappliTool(DoJa2.0)のエミュレータで実行する設定を教えて下さい
ドコモが提供している公式ツールであるiappliTool(DoJa2.0)に付属されているエミュレータを実行するためには、以下の様に設定します。なお、使用に関しての不具合などは一切保証しませんのでご注意下さい。
ここで説明する設定は、エミュレータの実行ファイルであるdoja.exe、ビルドしてできたJAM、JARファイルを指定するだけの簡易的なものです。もしそれ以外のオプションなどを使用する場合は適宜修正して下さい。
※doja.exeのオプションなどについては、コマンドプロンプトで「doja.exe -help」と入力すれば表示されます。1. 環境設定ダイアログの実行設定タブで追加ボタンを押下し、コマンド設定ダイアログを開く。
2. コマンド設定ダイアログの設定名にわかりやすく「DoJa Emulator」と入力。
3. アプリケーションテキストフィールドには以下の内容を記載したバッチファイルのパスを入力します。
(設定例:C:\DoJaBuilder2\bin\DoJaEmu.bat)バッチファイルの内容:C:\iDK\bin\doja.exe -i %1 -j %2
※doja.exeのパスに関してはお使いの環境に合わせて設定して下さい。
4. 引数テキストフィールドには「%PROJ-BIN%\%PROJ-NAME%.jam %PROJ-BIN%\%PROJ-NAME%_s.jar」と指定。
※この指定は、JAM、JARファイルのフルパスを指定しています。
|
Q:RetroGurad以外のjargというオブファスケーターを使用したいのですが?
DoJaBuilderが使用しているオブファスケーターツールであるRetroGuardは、フリーでとても良いソフトウェアですが、「java.lang.Class.forName(String)メソッドを使用している場合はオブファスケート処理ができない」という制約があります。そのため、504i向けに開発する時にはエラーになって使用できません。
※Ver2.0.4から使用するオブファスケーターツールをProGuardに変更したため、上記制約は解決しています!同じようにフリーのオブファスケーターツールであるjarg(Java Archive Grinder)では、その制約が無いようで、504i向けにオブファスケート処理ができます。
しかし、DoJa Buliderは、オブファスケーターで処理をした後、ログファイルの解析を行ってJAMファイルの内容を書き換えているため、簡単には対応できません。そのため、もしjargを使用したい場合は、実行設定で独自にオブファスケーター処理を行って使って頂くことになります。jargを使う時の設定例を以下に示します。なお、使用に関しての不具合などは一切保証しませんのでご注意下さい。
jargはダウンロードして適当なところに解凍して置いて下さい。1. 環境設定ダイアログの実行設定タブで追加ボタンを押下し、コマンド設定ダイアログを開く。
2. コマンド設定ダイアログの設定名にわかりやすく「jarg」と入力。
3. アプリケーションテキストフィールドには以下の内容を記載したバッチファイルのパスを入力します。
(設定例:C:\DoJaBuilder2\bin\jarg.bat)バッチファイルの内容:cd %1
java -jar C:\DoJaBuilder2\bin\jarg.jar -j2me-prev C:\iDK\bin\preverify.exe -j2me-cp C:\iDK\lib\doja_classes.zip;C:\iDK\lib\classes.zip -rnlog jarg.log -showtime %2※1行目でJARファイルのディレクトリに移動し、2行目でjargでオブファスケート処理を行います。
※jarのパスに関してはお使いの環境に合わせて設定して下さい。
※jarg.jarファイルのパス、及び「-j2me-prev」に続くpreverify.exeのパス、「-j2me-cp」に続くクラスパスはお使いの環境に合わせて使用して下さい。
※使用していないjargのオプションに関しては、ご自由に指定して使用して下さい。4. 引数テキストフィールドには「%PROJ-BIN% %PROJ-NAME%.jar」と指定。
※この指定は、JARファイルのディレクトリとJARファイルのフルパスを指定しています。
上記設定でjargを使う時には以下のことに気を付けてお使い下さい。1. 処理後に出力されるJARファイルは、元のJARファイル名に「_s」が 付く。(例 SpaceShooter.jar -> SpaceShooter_s.jar)2. IApplicationクラスを継承するクラスのCLASSファイルは名前が変更されない。3. 処理の終了は 4567[msec] という処理時間メッセージが出た時で判断する。4. オプション指定でPreverifyとクラスパスを指定し、 Preverify処理を行う必要がある。5. jargで処理したログは、プロジェクトのbin2ディレクトリにjarg.logという名前で出力される。6. 当然、JAMファイル内のJARファイルサイズは手動で書き換える必要 がある。
以上
|
WindowsXPで開発をしていると「Thumbs.db」という名前のファイルがJAR(またはKJX)ファイルに入ってしまい無用にサイズが大きくなることがあります。
この「Thumbs.db」ファイルは、画像ファイルの入ったフォルダをエクスプローラーなどで縮小版表示(絵の内容を縮小表示する形態)で表示すると現れるOSのシステムファイルですが、通常は見ることができません。「Thumbs.db」ファイルの存在を知る方法を以下に記載します。1. JARファイルの拡張子を「.zip」にしてZIP解凍ツールで中身を一覧表示してみる
2. エクスプローラーなどの[ツール]メニュー -> [フォルダオプション]メニュー -> [表示]タブから「保護されたオペレーティング システム ファイルを表示しない(推奨)」チェックボックスをはずす
※なお、このチェックボックスはチェックしていることが好ましいので、使用時には注意して下さい。「Thumbs.db」ファイルは意外に重く、数十KBあります。JARファイルの中に入った時にはその半分の容量になりますが、携帯電話Java開発時には無用なサイズです。「Thumbs.db」ファイルは削除しても問題のないファイルだと思われますが、もし削除する場合は自己責任の上で行って下さい。
|
Ver2.0.13から、プロジェクト毎にクラスパスを変更する機能が追加されました。各プロジェクトのbin2ディレクトリ内にクラスパスを記載した「CLASSPATH.txt」を置いておくことでビルド時にクラスパスを切り替えて使用されます。「CLASSPATH.txt」内は改行を許可していませんので、クラスパスは改行無しで記載して下さい。パスが複数ある場合は通常のクラスパス指定時と同じように「;」で区切ります。
Ver2.0.13よりも前のバージョンをお使いの場合は以下の方法が使用できます。
505i向け、およびFOMA向けといったようにクラスパスを切り分けて使用したいという要望はあるかと思います。一番簡単に対応する方法は、「DoJaBuilder2を複数インストールし、それぞれの設定を行う」ことです。例えば、C:\iappToolの直下にインストールしていた場合、以下のようなディレクトリ構成でインストールし、それぞれのDoJaBuilder2でクラスパスの設定をしておけば起動するDoJaBuilder2を変えることで対応することができます。
ライセンス的には、「1PCに付き1ライセンス」という決まりであるため、同一PC上に複製してインストールしても問題ありません。
C:\iappTool + bin505 (505i向け設定DoJaBuilder2)
+ binFOMA (FOMA向け設定DoJaBuilder2)
|
DoJaBuilder2は、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.11以降から自動的に付かなくなりました。なお、Java1.5の場合は以下のオプションが必要になります。
-source 1.3...1.3を指定することでソースコードのアサーション機能をサポートしないように指定します。アサーション機能とはJava1.4で追加された機能で、現時点で携帯電話Javaには関係ありません。
|
Q:プリプロセッサ機能を使った効果的な軽量化方法を教えて下さい
DoJaBuilder2には、プリプロセッサ機能が付いています。この機能を効果的に使うことでさらにファイルの軽量化を図ることが可能になります。
携帯Javaの場合、以下のことが勧められていますが、とてもスマートとは言えません。
オブジェクト指向を無視する 定数を使わずにローカル変数にする- etc...
特に「定数を使わずにローカル変数にする」はコードの再利用をする場合にはわかりにくくなります。そのため、できるだけ定数を使いたいとは思いますが、定数が多くなれば多くなるほどファイルが重くなってきます。そこで、プリプロセッサ機能を使って定数を置き換えます。
具体的には、以下の順番で行います。1. 定数を作成して使用する。
この時、定数はstatic finalにし、使用するときにはクラス名.定数名の形式にする。このことで他のクラスでの使用、および置き換えるときに非常に有効になります。2. 軽量化の必要が出てきた時にプリプロセッサの#define構文の置き換え機能を使用して以下のことを行う
定数定義部分をコメント化 「クラス名.定数名」形式で使用している個所を置き換える付属のプリプロセッサ機能に付いているコメント行構文を有効にするオプションを使うことでIDEでコードを編集していてもエラーにはならないため、非常に効率が上がります。そして、同時にオブファスケーターを使用することでさらにコードの軽量化が期待できます。
なお、上記方法は変数定義を減らすことで軽量化を図っていますが、定数が少ない場合には思ったよりも軽量化がされない場合がありますので、色々と試してベストな方法を探してみて下さい。
|
Q:iappliToolをバージョンアップしたらエミュレータが起動できなくなったのですが?
iappliTool 4.1からエミュレータ(doja.exe)の起動時の処理が変更されたらしく、jam、jarファイルが「bin」ディレクトリにないと起動しても直ぐ落ちてしまう模様です。
DoJaBuilder2ではビルド後にjam、jarファイルを「bin2」 ディレクトリに出力するため、この制限に当たってしまい、起動できなくなったと考えられます。
※「bin2」ディレクトリに出力されたjamファイルをダブルクリックする等して直接起動した場合でも「bin」ディレクトリにあるjarファイルを見に行くようです。出力パスを変更するには、「DoJaBuilder2_Path.resx」ファイルの以下の個所のvalue値を「bin2」から「bin」に変更する事で可能です。ただし、binディレクトリ内のjamファイルを書き換える事になりますので、iappliToolと同時起動している時にはiappliTool側に変更が反映されない可能性がありますのでご注意下さい。
<data name="ProjectBin2Name">
<value>bin2</value>
</data>なお、ユーザーから「bin2」->「bin」ではなく、「bin2」->「output\bin」に変更しても起動可能(コマンド設定は適宜修正して下さい)とのご報告を頂いております。
|
|
Q: エミュレータの代わりにバッチファイルを起動できますか?
はい、できます。引数としてパスを指定でき、さらに複数のアプリケーションを登録できますので、バッチファイルなどを使用して外部コマンドの呼び出しなどを行うこともできます。
|
DoJaBuilder2はeclipseのプラグインではないため、eclipseに組み込んで使用することはできません。しかし、以下の2つの方法を使えばeclipseで編集したソースをビルドすることは可能です。
ただし、eclipseで編集する時にプロプロセッサの構文はエラーの対象になるため目障りになるかも知れませんのでコメント付き構文オプションを使用した方が良いでしょう。
なお、 eclipseについてのご質問についてはご遠慮下さい。
方法1. DoJaBuilder2にeclipseのworkspaceディレクトリをiappliToolのappsディレクトリの代わりに認識させる
手順
1. eclipseのディレクトリ直下にbinディレクトリを作成し、その中にDoJaBuilder2をインストールする。
2. 「DoJaBuilder2_Path.resx」ファイルをテキストエディタなどで開き、 以下の様なXMLタグ部分の「apps」を「workspace」 に置き換えます。
※同じXMLタグが複数有りますが、 dataタグのname属性値は違うので識別可能です。
<data name="AppsDirName"> <value>apps</value> </data>以下の様に太字の部分を変更します。 これで iappliToolのappsディレクトリの代わりに eclipseのworkspaceディレクトリを使うことを認識させることができました。<data name="AppsDirName"> <value>workspace</value> </data>3. eclipseでJavaプロジェクトを作成(DoJaライブラリにクラスパスを通しておいた方が好ましいでしょう。)
4. DoJaBuilder2を起動し、3で作成したプロジェクトと同名プロジェクトを作成上記手順を行うことでeclipseで編集したソースをそのままビルドすることは可能です。
なお、 上記説明はeclipseのJavaプロジェクトのソースファイルをsrcディレクトリに入れているという前提ですので、もしeclipseのプロジェクトのソースをsrcディレクトリ以外に入れて使用している場合は 「DoJaBuilder2_Path.resx」ファイルの以下のタグ部分の「src」指定を直すことで対応できます。<data name="ProjectSrcDir"> <value>src</value> </data>※eclipseがビルドして生成するCLASSファイルの入ったディレクトリとDoJaBuilder2のCLASSファイルを入れるために使用するディレクトリ(classes,tmpclasses)が同じ場合、eclipseにてコードを編集をしている時にエラーがでることがあります。このエラーは、eclipseのプロジェクトのプロパティにて「デフォルト出力フォルダー」をDoJaBuilder2の使用しない「build」などのディレクトリ名に変更することで回避できます。
方法2. eclipseで編集したソースコードをiappliToolのappsディレクトリに移動させてDoJaBuilder2でビルドするこの方法は、「DoJaBuilder2_Path.resx」ファイルは編集しない代わりに多少手間がかかりますが、ません。
具体的には、ビルドする時にソースコードがDoJaBuilder2のプロジェクトディレクトリ内のsrcディレクトリに入れる手間が増えます。ソースファイルを簡単に移動させる例として実行設定にファイル移動用バッチファイルを指定して使う方法を挙げます。1. 環境設定ダイアログの実行設定タブで追加ボタンを押下し、コマンド設定ダイアログを開く。
2. コマンド設定ダイアログの設定名にわかりやすく「eclipse」と入力。
3. アプリケーションテキストフィールドには以下の内容を記載したバッチファイルのパスを入力します。
(設定例:C:\DoJaBuilder2\bin\file_move4eclipse.bat)バッチファイルの内容:copy C:\eclipse\workspace\%1\src\*java %2※「C:\eclipse\workspace\%1\src\*java」の「%1」部分は起動する時にプロジェクト名に置き換わります。
※「%2」部分は起動する時にDoJaBuilder2のプロジェクトのsrcディレクトリ名に置き換わります。
4. 引数テキストフィールドには「%PROJ-NAME% %PROJ-DIR%\src」と指定。
※この指定は、DoJaBuilder2でのプロジェクト名とプロジェクトのsrcディレクトリを指定しています。上記設定のバッチファイルを使う時には以下のことに気を付けてお使い下さい。1. eclipseのプロジェクト名とDoJaBuilder2のプロジェクト名を同じにする。2. eclipseのプロジェクトのソースファイルの置き場所が違う場合はバッチファイルを変更して下さい。
3. 上記バッチファイルはパッケージには対応していません。(対応したい場合はバッチファイルを書き換えて下さい。)
以上
|
.NET Frameworkアプリケーションはネイティブアプリケーション(C言語など)と比べるとネイティブコードに変換してから実行するため、どうしても遅くなるのが非常に気になる部分です。しかし、.NET FrameworkにはNgen(ネイティブ イメージ ジェネレータ (Ngen.exe))というツールが含まれており、このツールを使うことで高速化を図ることができます。Ngenの詳細はマイクロソフトのサイトを参照して下さい。
Ngenは、該当のEXEファイルを指定して実行するだけです。ただし、バージョンアップ時にはNgenのdeleteオプションを指定して削除する必要があります。
以下にC:\tools\DoJaBuilder2\ディレクトリ内にあるDoJaBuilder2.exeに対してNgenをする例を挙げます。
※ Ngen.exeはWindowsXPの場合「C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322」(.NET Framework1.1の場合)にあります。通常時
- コマンドプロンプトを開き、Ngen.exeのパス + 半角スペース + DoJaBuilder2.exeのパスを指定して実行
※半角スペースを含むパスを指定する場合には「"」ダブルクオートを使って囲んで下さい。
例:
"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\ngen.exe" C:\tools\DoJaBuilder2\DoJaBuilder2.exe削除時
- コマンドプロンプトを開き、Ngen.exeのパス + 半角スペース + "/delete" + DoJaBuilder2.exeのパスを指定して実行
※半角スペースを含むパスを指定する場合には「"」ダブルクオートを使って囲んで下さい。
例:
"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\ngen.exe" /delete C:\tools\DoJaBuilder2\DoJaBuilder2.exe
|
|
ご意見、ご要望はいつでも受け付けていますので、こちらのアドレスまでメールでお送り下さい。良いご意見、ご要望の場合はバージョンアップの時に機能追加等で対応する可能性があります。
なお、これは返答を保証している訳ではありませんのでご了承下さい。
|
ライセンスをご購入頂いた方からの質問はいつでも受け付けています。こちらのアドレスまでメールでお送り下さい。
|
個人の方であれば、私どもSkyArtsの代表である「米川」が執筆した「Java2ME MIDPゲームクリエーターズガイド - J-PHONE、KDDI完全対応」(技術評論社から発売中)を購入して学ぶことをお勧めします。ただし、この書籍はDoJa(iアプリ)とは違いますのでご注意下さい。
法人などの団体の方の場合は、社員教育やセミナーなどを承っておりますのでこちらのアドレスまでメールでご相談下さい。私どもは携帯電話Javaの書籍、雑誌記事執筆、開発ツール開発などの実績があります。
|
|
|