Java2OP.exe - Android 向けネイティブ ブリッジ ファイル ジェネレータ
Java2OP.exe("Java To Object Pascal")は、Java ライブラリ(JAR またはクラス ファイル)から Delphi ネイティブ ブリッジ ファイルを生成するのに使用できるコマンドライン ツールです。生成されたファイルを使用すると、Android 上で Delphi アプリケーションからそれらの Java ライブラリにアクセスできるようになります。「RAD Studio Android アプリケーションでのカスタム Java ライブラリ セットの使用」を参照してください。
Java2OP.exe は登録ユーザー向けサイト(http://cc.embarcadero.com/myreg)で入手可能です。
使用法
このツールを使用するには、オプションを任意に組み合わせてツールを呼び出すだけです。
Java2OP.exe [<オプションの任意の組み合わせ>]
出力される Delphi ネイティブ ブリッジ ファイルにどのような内容を含めるかを示す入力オプションを少なくとも 1 つ指定する必要があります。
-classes
パラメータを使って明示的に指定しない限り、出力されるネイティブ ブリッジ ファイルには、Android 向けの組み込み RAD Studio Java ライブラリの一部となっているものは含まれていません。指定したクラスのいずれかが Android 向けの組み込み RAD Studio Java ライブラリの構成要素に依存している場合、結果として生成されるネイティブ ブリッジ ファイルではそれらの要素は再宣言されず、代わりに、それらの要素を既に宣言している RAD Studio ユニットがネイティブ ブリッジ ファイルにインクルードされます。
入力オプション
オプション | 説明 |
---|---|
|
エクスポートするクラスまたはパッケージの名前をスペースで区切ったリストです。
|
|
入力となるコンパイル済み Java ライブラリ( |
|
Java ソース ファイル( |
出力オプション
オプション | 説明 |
---|---|
|
出力ユニットのファイル名です。 デフォルト: |
例
Android API から一部のクラスやパッケージをエクスポートする場合:
Java2OP.exe -classes android.net.ConnectivityManager android.location.*
mylib.jar
からすべてのクラスをエクスポートする場合:
Java2OP.exe -jar mylib.jar
mylib.jar
から単一のクラスをエクスポートする場合:
Java2OP.exe -jar mylib.jar -classes com.mypackage.ClassName
出力される Delphi ユニットのファイル名を指定して Java ソースのフォルダからすべてのクラスをエクスポートする場合:
Java2OP.exe -src myproject/src -unit Android.JNI.UnitName
トラブルシューティング
JDK が不明
- "Missing JDK. Please install JDK 1.7+ or make sure that it is on your PATH"(JDK が見つかりません。JDK 1.7 以上をインストールするか、PATH に必ず含めてください)
Java2OP.exe を使用するには、Java と JDK 1.7 以上をインストールする必要があります。
JDK をインストールしてあっても、まだこのエラーが発生する場合は、PATH
環境変数に設定されているパスに JDK のバイナリ フォルダが含まれていないことが原因です。JDK のインストール ディレクトリの bin
フォルダを PATH
に追加してください。
たとえば、コマンド ラインで次のように実行します。
SET PATH=%PATH%;C:\Program Files\Java\jdk1.7.0_25\bin
EListError エラー
- "EListError エラーが発生しました。エラー メッセージ: 重複は認められていません"
ソース ファイルまたは JAR ファイルを 2 回以上指定しました。
Java2OP.exe
では Android API がデフォルトで入力として含まれているため、-jar
オプションを使って Android API の JAR ファイルを手動で指定した場合も、このエラーが発生します。たとえば、次のコマンドは無効です。
Java2OP.exe -jar android.jar
Android API の構成要素を抽出する場合は、-classes
オプションを指定すればよいだけです。たとえば、次のように指定します。
Java2OP.exe -classes android.animation.*