Zum Inhalt springen

Java Native Interface

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 24. Mai 2013 um 16:25 Uhr durch 89.182.246.175 (Diskussion) (Einsatzzweck: datt-isn-adjektiv). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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

Literatur