この記事では、JNI の使用法について簡単に説明します (詳細)。必要な方は参考にしていただければ幸いです。
JNI を使用すると、Java コードでローカル ライブラリの関数を呼び出すことができます。
以下は、JNI
1 の簡単な使用方法の記録です。Java インターフェイスを作成します。
public class JNIIterface { // 导入最终生成的dll文件 static { System.loadLibrary("JNIDemo"); } // 声明dll文件中实现的接口 public native int MyMethod(); public native int add(int x, int y); }
2 インターフェイスに対応する C ヘッダー ファイルを生成します。
上記の作成された JNIIterface クラス、JNIIterface .class ファイルのパス: \JNIDemo\bin\base\JNIIterface .classプロジェクト ディレクトリの bin ディレクトリでコマンドを実行します: javah -classpath - jnibase.JNIIterfaceその後、base_JNIIterface.h ファイルが \JNIDemo\bin\ ディレクトリに生成されます 3 Visual Studio を使用してインターフェイス## の実装を記述します。 #C プロジェクトを作成する具体的な手順は次のとおりです。
ステップ 1:
ステップ 2:
##ステップ 3:
必要なヘッダー ファイルをインポートする
上記の 2 番目のステップで生成されたヘッダー ファイルと jni.h を配置します。## jdk ルート ディレクトリ下の include ディレクトリにある #win32 ディレクトリにある jni_md.h ファイルをインクルードし、プロジェクト ディレクトリのヘッダー ファイル ディレクトリにコピーします。
##関数実装ファイルを作成しますプロジェクト ディレクトリ内のソース ファイルを右クリックし、[追加 - 》クラスをクリックして、次のコードを記述します:
#include "base_JNIIterface.h" #include "jni.h" #include <stdio.h> JNIEXPORT jint JNICALL Java_base_JNIIterface_MyMethod (JNIEnv *, jobject){ printf("成功实现JNI测试DEMO"); return 0; } JNIEXPORT jint JNICALL Java_base_JNIIterface_add (JNIEnv *, jobject, jint a, jint b){ return a + b; }
4. プロジェクト ディレクトリの「ソリューション」に DLL ファイル
を生成します。 右クリックして [プロパティ] を選択し、以下に示すようにプロジェクトを構築します。 #その後、プロジェクトをコンパイルした後、プロジェクト ディレクトリの下の Release ディレクトリに dll ファイルに変換されます5. dll ファイルを Java プロジェクトに設定します
まず、Java プロジェクトのルート ディレクトリの下の lib ディレクトリに dll ファイルを配置します。
次に、以下の手順に従います。dll ファイルをネイティブ ライブラリとしてプロジェクトに追加します。上の図に示されているネイティブ ライブラリの場所を編集し、ポップアップ インターフェイスでネイティブ ライブラリが配置されているフォルダーを選択します。
6. JNI が正常に適用されているかどうかを確認するテスト クラスを作成します。 public class HelloJNI {
public static void main(String[] args) { JNIIterface hw = new JNIIterface(); int t = hw.add(3, 7); int s = hw.MyMethod(); System.out.println(t); System.out.println(s); } }
0 0 成功??JNI??DEMO
上記は最も多くの記録を記録します。 JNI を使用するための基本的な手順。
システム DLL ファイルなど、すでに作成されているサードパーティ DLL ファイルの機能を使用する方法については、詳細な調査が必要です。
以上がJava での JNI の簡単な使用法 (詳細)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。