Erste Schritte mit der Java Native Interface

Erste Schritte mit der Java Native Interface
Java Native Interface, abgekürzte JNI, ist eine Programmierschnittstelle, mit der Java -Entwickler Codes und Snippets aus anderen Programmiersprachen in Java ausführen können. Es wird mit dem Essential Java Software Development Kit oder SDK verbunden (wir werden das in einem anderen Tutorial behandeln).

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.Java

Schritt 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 Beispiel1

Die 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 Beispiel1

Es 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.