Privacy Policy Cookie Policy Terms and Conditions Java Native Interface - Wikipedia

Java Native Interface

aus Wikipedia, der freien Enzyklopädie

Java Native Interface (JNI, frei übersetzt „Schnittstelle zwischen Java und Einheimischen“) ist eine standardisierte Anwendungsprogrammierschnittstelle (API) zum Aufruf von betriebssystemspezifischen (native, also „einheimischen“) Funktionen bzw. Methoden aus der betriebssystemunabhängigen Programmiersprache Java heraus.

Allerdings büßt Java damit die Plattformunabhängigkeit ein, falls die native Programmbibliothek nicht auf allen Plattformen verfügbar ist.

Inhaltsverzeichnis

[Bearbeiten] Einsatzzweck

So ermöglicht es JNI beispielsweise, dass ein Java-Programm Funktionen einer Windows-DLL oder einer shared library unter Linux, die in C oder C++ programmiert sind, aufruft. Der umgekehrte Weg ist ebenfalls möglich: „Native“ Programme können auch Java-Methoden über JNI aufrufen oder eine komplette JVM ausführen.

[Bearbeiten] Java ruft Native 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 aufgerufen wird.

Das Javaprogamm wird kompiliert und anschließend mit dem Tool javah eine Headerdatei erstellt, die die Funktionsdeklaration vorgibt. Mit dieser Headerdatei 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.

[Bearbeiten] Native ruft Java auf

Ein Einsatzzweck des Aufrufs von Java-Methoden aus nativen Programmen ist das Ausführen einer Java Anwendung als Netzwerkdienst auf Windows. So gibt es zum Beispiel eine Open-Source-Software namens JavaService, die JNI für diesen Zweck verwendet.

[Bearbeiten] Literatur

[Bearbeiten] Weblinks

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -