フォーラム


ゲスト  

ようこそ ゲスト さん。このフォーラムに投稿するには 登録が必要です。

ページ: [1]
トピック: Java2OP の使い方
DEKO
管理者
投稿数: 2634
Java2OP の使い方
on: 2015/07/21 19:51 Tue

Java2OP は Android 向けネイティブブリッジファイルジェネレータです。
簡単に言えば Android の SDK 用ヘッダを生成してくれるツールです。これにより、Android の API を呼び出す事ができるようになります。

[Java2OP.exe - Android 向けネイティブ ブリッジ ファイル ジェネレータ (DocWiki)]
http://docwiki.embarcadero.com/RADStudio/ja/Java2OP.exe_-_Android_%E5%90%91%E3%81%91%E3%83%8D%E3%82%A4%E3%83%86%E3%82%A3%E3%83%96_%E3%83%96%E3%83%AA%E3%83%83%E3%82%B8_%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB_%E3%82%B8%E3%82%A7%E3%83%8D%E3%83%AC%E3%83%BC%E3%82%BF

XE7 の Java2OP は後で提供されたので、別途 DL する必要があります。XE8 では $(BDS)\bin\Converters\Java2OP の中にあります。

[Java2OP (XE7)]
http://cc.embarcadero.com/item/30007

また、Appmethod 1.15 用に Java2OP が提供されているので、XE5 / XE6 ユーザーはこちらを DL して使う事もできます。

[Java2OP (Appmethod 1.15)]
http://altd.embarcadero.com/download/appmethod/1.15/Java2OP_092514.zip

Java2OP を使うには、JDK へのパスを通す必要があります。環境変数 PATH に JDK へのパスを設定してください。たとえば以下のようになります。

…;C:\Program Files\Java\jdk1.7.0_25\bin

 
環境変数を変更したら、念のために Windows を再起動あるいはログオフして再ログインしてください。

XE8 付属の Java2OP はそのままでは使えません。Android SDK の中にある android.jar を bootclasses.jar にリネームしたものを Java2OP.exe と同じフォルダに置く必要があります。この android.jar は SDK の API レベルによって複数存在しますので、RAD Studio でお使いのバージョンと合わせておくといいでしょう。

加えて、XE8 では bootclasses.xml が必要になります。こちらも Java2OP.exe と同じフォルダに置く必要があります。これは android.jar のカタログのようなものですが、自前で記述しなくてはなりません。面倒な方は XE7 または Appmethod 1.15 の Java2OP 付属の android-19.xml を bootclasses.xml にリネームしてお使いください (但し API レベル 20 以上で実装されたクラスを指定できない事になります)。

Java2OP のコマンドラインオプションは DocWiki にある通りですが、-unit オプションには気をつけてください。ここに拡張子を含める必要はありません

-unit C:\temp\android.abc.pas

 
このように指定すると、ユニットは C:\temp に出力されますが、ファイル名は android.abc.pas.pas となってしまいます。

以下はブリッジファイル出力用のコマンドラインの例です (XE8)。

cd "%ProgramFiles(x86)%\Embarcadero\Studio\16.0\bin\converters\java2op"
java2op -classes android.nfc.* -unit C:\temp\android.nfc

 
NFC API 関連のブリッジファイルを android.nfc.pas として C:\temp へ出力します。

DEKO
管理者
投稿数: 2634
Java2OP (readme より)
on: 2015/07/21 19:54 Tue

インストール
——-

Java2OP.exe を使用するには、Java と JDK 1.7 以上をダウンロードし、インストールする必要があります。
JDK のインストール ディレクトリの bin フォルダを PATH に追加してください。
たとえば、コマンド ラインで次のように実行します。
SET PATH=%PATH%;C:\Program Files\Java\jdk1.7.0_25\bin

使用法
—–
このツールを使用するには、オプションを任意に組み合わせてツールを呼び出すだけです。
Java2OP.exe [<オプションの任意の組み合わせ>]

出力される Object Pascal ネイティブ ブリッジ ファイルにどのような内容を含めるかを示す入力オプションを少なくとも 1 つ指定する必要があります。

-classes パラメータを使って明示的に指定しない限り、出力されるネイティブ ブリッジ ファイルには、Android 向けの組み込み Java ライブラリの一部となっているものは含まれていません。指定したクラスのいずれかが Android 向けの組み込み Java ライブラリの構成要素に依存している場合、結果として生成されるネイティブ ブリッジ ファイルではそれらの要素は再宣言されず、代わりに、それらの要素を既に宣言している ユニットがネイティブ ブリッジ ファイルにインクルードされます。

入力オプション
————-
-classes: エクスポートするクラスまたはパッケージの名前をスペースで区切ったリストです。-classes では、指定の Java ソース(-jar オプションまたは -source オプション)または Android API の特定のサブセットを明示することができます。
-jar: 入力となるコンパイル済み Java ライブラリ(.jar ファイル)をスペースで区切ったリストです。
-source: Java ソース ファイル(.java ファイル)が格納されている入力フォルダをスペースで区切ったリストです。

出力オプション
————–
-unit: 出力ユニットのファイル名です。
デフォルト: Android.JNI.Interfaces


——–
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

出力される Object Pascal ユニットのファイル名を指定して Java ソースのフォルダからすべてのクラスをエクスポートする場合:
Java2OP.exe -source myproject/src -unit Android.JNI.UnitName

DEKO
管理者
投稿数: 2634
Re: Java2OP の使い方
on: 2015/08/11 07:38 Tue

XE8 の Java2OP がマトモに動作しない件は QP に入っています。
https://quality.embarcadero.com/browse/RSP-11138

DEKO
管理者
投稿数: 2634
Re: Java2OP の使い方
on: 2015/08/11 15:18 Tue

XE8 の Java2OP の件は以下の修正モジュールで解決するようです。

[Missing Java2Op files for RAD Studio, Delphi, and C++Builder XE8]
http://cc.embarcadero.com/Item/30326

※ 対応 API レベルは 19 です。

ページ: [1]
WP Forum Server by ForumPress | LucidCrew
バージョン: 1.7.5 ; ページロード: 0.02 sec.