JNI wird auch verehrt, damit seine Funktion die API anrufen kann, um sich in eine java -virtuelle Maschine in Java -Anwendungen zu schleichen. Dadurch können die Entwickler den Java -Code im Code der nativen Anwendung aufrufen.
Wenn Sie einige Zeit damit verbracht haben, mit Java zu arbeiten, sind Sie wahrscheinlich bereits auf die vielen Leistungsprobleme gestoßen, die sich unweigerlich in den Weg finden. Dies ist kein Problem, wenn Sie denselben Code in der Muttersprache ausführen, was über achtzehn Mal schneller ausgeführt werden kann, wenn Sie in einem kompilierten Modell gelesen werden. Darüber hinaus können Sie auch veraltete/inkompatible Hardware -Routinen mit nativen Codes in anderen Sprachen verwenden.
In diesem Tutorial wird gezeigt.
Voraussetzungen
Sie werden ein paar Dinge brauchen, die Sie diesem Leitfaden richtig durchführen können. Dazu gehören der Java -Compiler oder Javac.exe zusammen mit dem JVM sowie dem nativen Methode C Generator (Javah.exe). Alle drei sind in das Softwareentwicklungskit eingebaut, sodass Sie alle gut sind, wenn Sie das haben. Neben diesen drei benötigen Sie auch die Dateien, die JNI definieren, einschließlich nativer Header -Dateien und vollständiger Bibliotheksdateien.
Und natürlich verwenden wir in einem Tutorial über das Ausführen der C- und C ++ - Codes auch den C -Compiler, um eine gemeinsame Bibliothek zu erstellen.
JNI -Komponenten
JNI wird hauptsächlich von zwei Komponenten angetrieben, nämlich H und Javah. H ist die Header -Dateikomponente, die native Codes durch Java -Code ersetzt.
Aufrufen von C/C ++ aus Java -Code
Schritt 1: Schreiben Sie den Code in Java
Der Code ist zuerst in Java geschrieben und entspricht drei Bedingungen. Erstens wird es mit der nativen Methode geschrieben, die später aufgerufen werden soll. Zweitens muss es die gemeinsame Bibliothek laden, zu der der native Code gehört, und schließlich muss er die nativen Methoden aufrufen.
Verwenden wir diesen Code, um weiter zu veranschaulichen:
Bekanntmachung Zeilen 3 und 6; Dies sind die Linien, in denen die nativen Methoden enthalten sind. Der Code, der die gemeinsam genutzten Bibliotheken lädt.
Schritt 2: Kompilieren des Java -Codes zu Bytecode
Der zweite Schritt hat mit dem Kompilieren des Java -Codes zu tun. Der Javac -Compiler kann den Job hier für uns erledigen. Geben Sie einfach den folgenden Befehl aus:
$ javac Beispiel1.JavaSchritt 3: Erstellen Sie C/C ++ - Header -Dateien
Als nächstes müssen die Headerdateien der Muttersprachen erstellt werden. Diese Header -Dateien versorgen die Signaturen der nativen Codes.
Diese Header -Dateien können mit dem mit SDK gebündelten C -Stubgenerator mit dem folgenden Befehl erstellt werden:
Javah Beispiel1Die folgende Ausgabe sollte zurückgeben:
Schritt 4: Schreiben des nativen Code
Hier schreiben wir C/C ++ - Code. Sie sollten alle Unterschriften beachten, die den in Schritt 1 abgegebenen Erklärungen ähneln müssen.
Im Folgenden finden Sie eine Implementierung in C -Sprache:
Schritt 5: Erstellen Sie eine gemeinsame Bibliothek
Eine gemeinsame Bibliothek kann mit jedem Compiler erstellt werden. Da die freigegebene Bibliothek den nativen Code enthält, müssen wir einen erstellen.
Schritt 6: Starten Sie Ihr Programm
In diesem Schritt werden der Code bewertet und Probleme mit dem Programm identifiziert. Dies wird die Java -Laufzeitumgebung einbeziehen, da der Code in erster Linie in JVM ausgeführt wird.
Geben Sie den folgenden Befehl aus:
Java Beispiel1Es sollte zurückkehren:
Das war also unser kurzer Anfänger zur Verwendung von Java Native Interface. Wir hoffen, Sie haben es hilfreich gefunden.
Das Lernen, wie man mit JNI arbeitet.