Java Native Interface - LinkFang.de





Java Native Interface


Java Native Interface (JNI) ist eine standardisierte Anwendungsprogrammierschnittstelle (API), die die Möglichkeit schafft, aus der Programmiersprache Java heraus Plattform-spezifische Funktionen bzw. Methoden aufzurufen.

Im Gegensatz zu gewöhnlichen Java-Programmen ist ein Java-Programm, das JNI-Aufrufe verwendet, nur dann plattformunabhängig, wenn die native Programmbibliothek auf allen Plattformen verfügbar ist.

Einsatzzweck

JNI ermöglicht es, native Methoden zu schreiben für Situationen, in denen es nicht möglich ist, ausschließlich Java als Programmiersprache einzusetzen. Dies ist der Fall, wenn beispielsweise die Standard-Java-Klassenbibliothek bestimmte Plattform-abhängige Features oder andere Programmbibliotheken nicht unterstützt. Weiterhin ist es per JNI möglich, eine weitere in einer anderen Programmiersprache programmierte Anwendung für Java zugreifbar zu machen. Viele Klassen der Java-Standardbibliothek basieren auf JNI, um beispielsweise die Datei-Ein- und Ausgabe oder Soundwiedergabe zu ermöglichen. Dadurch, dass Java derlei Leistungs- und Plattform-abhängige Implementierungen in die Standardbibliothek integriert, wird dem Java-Programmierer und -Nutzer ermöglicht, diese Features in sicherer und Plattform-unabhängiger Weise nutzen zu können.

Gelegentlich wird JNI als Fluchttür ("escape hatch") für Java-Entwickler bezeichnet, da es ihnen den Zugriff auf Funktionalitäten ermöglicht, der andernfalls über die Standard-Java-API nicht möglich wäre. Es stellt die Schnittstelle zu anderen Programmiersprachen wie C oder C++ dar.

Mit JNI ist es möglich, Funktionen einer Windows-DLL oder einer shared library unter Linux bzw. Mac OS X, die in C oder C++ programmiert sind, aus Java aufzurufen. Umgekehrt können „native“ Programme Java-Methoden über JNI aufrufen oder eine JVM ausführen.

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

Aus einem nativen Programm kann Java-Code aufgerufen werden. Dies ist beispielsweise notwendig, um eine enge Verzahnung zwischen Java und dem nativen Programm zu ermöglichen.

Siehe auch

Literatur

Weblinks


Kategorien: Java-Programmierschnittstelle

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Java Native Interface (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.