Java、JNI、および C++: ネイティブ メソッド宣言からヘッダー ファイルを生成するにはどうすればよいですか?
JNI を介して C++ コードと通信する Java プロジェクトがあります。課題は、新しいメソッドを追加する必要があることです。最初に、Java コードでネイティブ メソッドを宣言することから始めました。ここで、JNI メソッドのヘッダー ファイルを再生成する必要があります。私はEclipseで作業していますが、これを行う方法がわかりません。
Java、JNI、および C++: ネイティブ メソッド宣言からヘッダー ファイルを生成するにはどうすればよいですか?
JNI を介して C++ コードと通信する Java プロジェクトがあります。課題は、新しいメソッドを追加する必要があることです。最初に、Java コードでネイティブ メソッドを宣言することから始めました。ここで、JNI メソッドのヘッダー ファイルを再生成する必要があります。私はEclipseで作業していますが、これを行う方法がわかりません。
これは Eclipse には組み込まれていませんが、簡単に実行できます。
File » New... » XML File
プロジェクトに Ant ファイル (以下のコード) を作成します。Project » Properties » Builders » New... » Ant Builder
Ant ファイルをビルド ステップとして追加します。生成されたファイルがプロジェクトに表示されるように、更新を「プロジェクト」に設定します。javah
コンパイルされたファイルを読み取るため、必ず Java Builder ステップの後にビルド ステップを配置してくださいclass
。これで、Java コードを変更するたびに、常に最新のヘッダー ファイルを使用できます。Ant ファイルに適用可能なクラスをリストするだけです。
<?xml version="1.0" encoding="UTF-8"?>
<project name="javah">
<mkdir dir="javah" />
<javah classpath="bin" destdir="javah">
<!-- list classes here -->
<class name="com.example.MyClass" />
</javah>
</project>
Ant スクリプトではさらに洗練されたものにすることができますが、上記で十分です。
以前はコマンドラインを使用して実行していました。
ソース ファイル ディレクトリに移動します。
javac filename.java
ファイルを生成しfilename.class
ます。
javah filename
ファイルを生成しfilename.h
ます。
詳細については、 javacおよびjavahを参照してください。
JDK のこのユーティリティはどうですか? ジャバ