Einführung in JNI
JNI ist die Abkürzung der nativen Java -Schnittstelle, die mehrere APIs zur Implementierung der Kommunikation zwischen Java und anderen Sprachen (hauptsächlich C & C ++) bietet. Ab Java 1.1 ist der JNI -Standard Teil der Java -Plattform geworden, mit der Java -Code mit Code interagieren kann, die in anderen Sprachen geschrieben wurden. JNI wurde ursprünglich für native kompilierte Sprachen entwickelt, insbesondere für C und C ++, jedoch hindert Sie nicht daran, andere Programmiersprachen zu verwenden, solange die Anrufkonvention unterstützt wird. Die Verwendung von Java zur Interaktion mit lokal kompilierten Code verliert häufig die Plattform -Portabilität. In einigen Fällen ist dies jedoch akzeptabel oder sogar notwendig. Verwenden Sie beispielsweise einige alte Bibliotheken, um mit Hardware, Betriebssystemen oder zur Verbesserung der Programmleistung zu interagieren. Der JNI -Standard muss zumindest sicherstellen, dass der lokale Code in jeder Umgebung für virtuelle Java -Virtual Machine arbeiten kann. Einfach ausgedrückt ist JNI für Java bequem, Funktionen in C- und C ++ - Sprachen anzurufen. Java bietet Schnittstellen (Header -Dateien), C und C ++, um diese Funktionen für Java zu implementieren.
Es gibt keine Schnittstelle zum Löschen des Bildschirms in Java, und das gesamte System ("CLS") in der C -Sprache kann durch JNI aufgerufen werden. Natürlich ist es auf die CMD -Bildschirmlähmung beschränkt und unterstützt keine Eclipse -Konsolenkonsole.
Schritt:
1. Schreiben Sie die native Schnittstelle von Java's Screen Clearing.
öffentliche Klasse Clear {static {System.loadlibrary ("Clear"); // laden laden.dll dynamische Bibliothek} öffentliche native statische void clscmd (); // Clear Screen}}2. Compile Clear.java und erzeugen Sie Clear.class
3.. Verwenden Sie Javah, um die entsprechende C -Sprach -Header -Datei Clear.h zu generieren.
4.. Verwenden Sie Visual Studio, um Win32 -Projekte zu erstellen und entsprechende DLL -dynamische Bibliotheken zu generieren
4.1 Erstellen eines Projekts
4.2 Anwendungstyp: DLL
4.3 Importieren Sie die Header -Datei Clear.h in Schritt 3 und die beiden Header -Dateien jni.h und jni_md.h, auf die sich auf das Projekt verlassen muss
Jni.h befindet sich im Include -Verzeichnis des JDK -Installationspfads.
jni_md.h befindet sich im Win32 -Verzeichnis im Include -Verzeichnis des JDK -Installationspfads.
Kopieren Sie diese drei Header -Dateien in das Projektverzeichnis:
Importieren Sie sie dann in vs:
Header-Datei ---> Hinzufügen ---> Vorhandene Elemente ---> Wählen Sie die drei oben genannten Header-Dateien aus ---> Hinzufügen
Ändern Sie #include <jni.h> in der clear.h -Header -Datei in #include "jni.h"
4.4 Fügen Sie .CPP -Datei hinzu und schreiben Sie C -Code.
Quelldatei ---> Hinzufügen ---> Neues Element ---> C ++ Datei: Clear.cpp
#include "clear.h" #include <iostream> jniexport void jnicall java_clear_clscmd (jnienv *, jclass) {System ("cls"); // Cs Bildschirm Clear}4.5 Einrichten der 64-Bit-DLL-dynamischen Bibliothek für die Generierung
Lösung ---> Eigenschaften
4.6 DLL erzeugen
Lösung ---> Klicken Sie mit der rechten Maustaste, um zu generieren
5 Test
5.1 Clear Clear.dll in das Verzeichnis, in dem Clear.class in den Schritten 1 und 2 befindet.
5.2 Testklassen schreiben
public class testjni {public static void main (String [] args) {System.out.println ("Hallo jni"); Clear.clscmd (); // Bildschirm löschen}}5.3 Testklassen kompilieren
Javac testjni.java
5.4 Testklasse ausführen
Java testjni
Perfekter Bildschirm klar, erledigen Sie es! ! !