„Java Native Interface“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
link rep. |
→Einleitung: Alternative braucht nicht gleich in die Einleitung rein - unten steht sie ohnedies nochmal |
||
Zeile 1: | Zeile 1: | ||
'''Java Native Interface''' ('''JNI''') ist eine standardisierte [[Application Programming Interface|Anwendungsprogrammierschnittstelle]] zum Aufruf von [[Plattform (Computer)|plattformspezifischen]] [[Funktion (Programmierung)|Funktionen]] bzw. [[Methode (objektorientierte Programmierung)|Methoden]] aus der Programmiersprache [[Java (Programmiersprache)|Java]] heraus |
'''Java Native Interface''' ('''JNI''') ist eine standardisierte [[Application Programming Interface|Anwendungsprogrammierschnittstelle]] zum Aufruf von [[Plattform (Computer)|plattformspezifischen]] [[Funktion (Programmierung)|Funktionen]] bzw. [[Methode (objektorientierte Programmierung)|Methoden]] aus der Programmiersprache [[Java (Programmiersprache)|Java]] heraus. |
||
Ein Java-Programm, das JNI-Aufrufe verwendet, ist nicht mehr plattformunabhängig, falls die native [[Programmbibliothek]] nicht auf allen Plattformen verfügbar ist. |
Ein Java-Programm, das JNI-Aufrufe verwendet, ist nicht mehr plattformunabhängig, falls die native [[Programmbibliothek]] nicht auf allen Plattformen verfügbar ist. |
Version vom 24. Mai 2013, 18:35 Uhr
Java Native Interface (JNI) ist eine standardisierte Anwendungsprogrammierschnittstelle zum Aufruf von plattformspezifischen Funktionen bzw. Methoden aus der Programmiersprache Java heraus.
Ein Java-Programm, das JNI-Aufrufe verwendet, ist nicht mehr plattformunabhängig, falls die native Programmbibliothek nicht auf allen Plattformen verfügbar ist.
Einsatzzweck
JNI ermöglicht es beispielsweise, dass Funktionen einer Windows-DLL oder einer shared library unter Linux bzw. Mac OS X, die in C oder C++ programmiert sind, aus Java aufgerufen werden. Umgekehrt ist es ebenfalls möglich, dass „native“-Programme Java-Methoden über JNI aufrufen oder eine JVM ausführen können.
Java ruft native Methode auf
Um aus Java eine native Methode aufzurufen, muss diese zunächst als „native
“ deklariert werden. Zudem muss das Objekt selbst die native Programmbibliothek mit dem Aufruf von „System.loadLibrary("<Name der Bibliothek>")
“ laden, bevor die native Methode selbst aufgerufen werden kann.
Das Javaprogramm wird übersetzt und anschließend mit dem Softwarewerkzeug javah
eine Header-Datei erstellt, die die Funktionsdeklaration vorgibt. Mit dieser Header-Datei kann dann die native Programmbibliothek erstellt werden.
Eine der populärsten Anwendungen von JNI ist die Programmbibliothek Standard Widget Toolkit (SWT), die über JNI die Verwendung von Elementen der Grafischen Benutzeroberfläche des Betriebssystems ermöglicht.
Natives Programm ruft Java auf
Genauso kann wiederum aus einem nativen Programm Java Code aufgerufen werden. Dies ist üblicherweise notwendig, wenn es eine starke Verzahnung zwischen Java und dem nativen Programm gibt.
Siehe auch
- Java Native Access (JNA) – Alternative zu JNI
Literatur
- Adrian Ofterdinger: Java Native Interface ab J2SE 1.4. (PDF; 898 kB) In: Javaspektrum. Nr. 5, 2005, S. 32–35.
Weblinks
- Java Native Interface – offizielle Dokumentation bei Oracle
- Projektseite des JavaService
- Compiled Native Interface (CNI) Alternative zu JNI (siehe auch GNU Compiler for Java in der englischsprachigen Wikipedia)
- NativeCall Alternative, um native Methoden ohne JNI aus Java aufzurufen