Dieser Artikel bietet Ihnen eine einfache Einführung in die Verwendung von JNI (ausführlich). Freunde in Not können darauf verweisen.
JNI ermöglicht es uns, die Funktionen lokaler Bibliotheken in Java-Code aufzurufen.
Das Folgende ist eine Aufzeichnung der einfachen Verwendung von JNI
1. Erstellen Sie die Java-Schnittstelle
public class JNIIterface { // 导入最终生成的dll文件 static { System.loadLibrary("JNIDemo"); } // 声明dll文件中实现的接口 public native int MyMethod(); public native int add(int x, int y); }
2. Generieren Sie die C-Header-Datei, die der Schnittstelle entspricht
oben Die erstellte JNIIterface-Klasse, der Pfad der JNIIterface .class-Datei: JNIDemobinbaseJNIIterface .class
Führen Sie den Befehl im bin-Verzeichnis im Projektverzeichnis aus: javah -classpath . -jni base.JNIIterface
Dann wird die Datei base_JNIIterface.h im JNIDemobin-Verzeichnis generiert
3. Verwenden Sie Visual Studio, um die Implementierung der Schnittstelle zu schreiben.
Erstellen Sie ein C-Projekt Die Schritte sind wie folgt:
Schritt 1:
Zweiter Schritt:
Schritt drei:
Importieren Sie die erforderlichen Header-Dateien
Die im zweiten Schritt oben generierte Header-Datei sowie die Datei jni.h im Include-Verzeichnis im jdk-Stammverzeichnis und die Datei jni_md.h im Win32-Verzeichnis des
include Kopieren Sie es in das Header-Dateiverzeichnis im Projektverzeichnis
Erstellen Sie die Funktionsimplementierungsdatei
Klicken Sie mit der rechten Maustaste auf die Quelldatei im Projektverzeichnis und klicken Sie auf Hinzufügen -> Klasse
Und schreiben Sie den folgenden Code:
#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; }
Generieren Sie die DLL Datei
Klicken Sie mit der rechten Maustaste auf „Lösung“ im Projektverzeichnis, wählen Sie Eigenschaften aus und stellen Sie dann wie unten gezeigt zusammen. Projekt
Dann, nach dem Kompilieren des Projekts, Es wird in eine DLL-Datei
5 im Release-Verzeichnis unter dem Projektverzeichnis konvertiert. Konfigurieren Sie die DLL-Datei im Java-Projekt
Platzieren Sie zuerst die dll-Datei im lib-Verzeichnis unter dem Stammverzeichnis des Java-Projekts
Führen Sie dann die folgenden Schritte aus, um die DLL-Datei als native Bibliothek zum Projekt hinzuzufügen
Bearbeiten Sie den oben gezeigten Speicherort der nativen Bibliothek und wählen Sie dann in der Popup-Oberfläche den Ordner aus, in dem sich die native Bibliothek befindet:
6. Schreiben Sie eine Testklasse in Überprüfen Sie, ob JNI erfolgreich angewendet wird. Öffentliche Klasse 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); } }
Die Testergebnisse nach der Ausführung lauten wie folgt:
0 0 成功??JNI??DEMO
Das Obige ist die grundlegendste Aufzeichnung der Verwendung von JNI.
Es bedarf noch eingehender Untersuchungen zur Verwendung der Funktionen geschriebener DLL-Dateien von Drittanbietern, wie z. B. System-DLL-Dateien.
Das obige ist der detaillierte Inhalt vonEinführung in die einfache Verwendung von JNI in Java (Details). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!