Java natív felület

A Java Native Interface (JNI)  egy szabványos mechanizmus a kód futtatásához a Java Virtual Machine (JVM) vezérlése alatt, amely C/C++ vagy Assembly nyelven íródott, és dinamikus könyvtárakként kapcsolódik. lehetővé teszi a statikus összekapcsolás használatát. Ez lehetővé teszi a C / C++ függvény meghívását Java programból és fordítva. A korábbi interfészek a JNI-vel ellentétben nem feleltek meg a bináris kompatibilitás feltételének .

Cél

A JNI fő előnye az előző verzióhoz ( JDK 1.0 NMI - Native Method Invocation) és más hasonló interfészekhez (Netscape Java Runtime Interface vagy a Microsoft Raw Native Interface és COM/Java Interface) képest az, hogy a JNI-t eredetileg bináris kompatibilitásra , alkalmazásokhoz tervezték. kompatibilitás , JNI használatával írva, bármely Java virtuális géphez egy adott platformon. Ezért a lefordított C / C++ kódot Java gépeknek kell végrehajtaniuk, például különböző böngészőkben, fejlesztőeszközökben, mint a Symantec Visual Cafe és a Sun Java Workshop, egy adott platformon ( ebben az esetben Win32 ). A korábbi interfészek nem feleltek meg a bináris kompatibilitási feltételnek .

Ezen a mechanizmuson keresztül a Java bájtkód kölcsönhatásba léphet a különböző operációs rendszerek alatt közvetlenül futó rendszer- vagy alkalmazásplatform -specifikus kóddal [1] .

A platform-specifikus JNI interfész nem biztosít hozzáférést egy adott operációs rendszer teljes alkalmazásprogramozási felületéhez, hanem csak annak egy részéhez. A JNI-t először a Java 1.1-es verziójában használták, és a Java 2-ben fejlesztették ki.

Elavult felület

Az NMI (Native Method Invocation) volt az első olyan mechanizmus, amelyet a Sun a C-kód Java-ból való meghívására határozott meg, és az egyetlen olyan mechanizmus, amelyet a JDK 1.0.2 támogat. A Java összes későbbi verziója már nem támogatja az NMI -t, helyette egy részben kompatibilis JNI-mechanizmus lép.

Jegyzetek

  1. Például számos rendszerhíváshoz a Windows rendszerprogramozási felülethez (Windows API), Mac OS API-hoz vagy GNU/Linuxhoz

Lásd még