Java Native Interface

Java Native Interface

Java Native Interface (JNI) — стандартный механизм для запуска кода, под управлением виртуальной машины Java (JVM), который написан на языках С/С++ или Ассемблера, и скомпонован в виде динамических библиотек, позволяет не использовать статическое связывание. Это даёт возможность вызова функции С/С++ из программы на Java, и наоборот. Более ранние интерфейсы, в отличие от JNI, не удовлетворяли условию двоичной совместимости.

Содержание

Предназначение

Основным преимуществом JNI перед предыдущей версией (JDK 1.0 NMI — Native Method Invocation) и другими похожими интерфейсами (Netscape Java Runtime Interface или Microsoft’s Raw Native Interface and COM/Java Interface) является то, что JNI изначально разрабатывался для обеспечения двоичной совместимости, для совместимости приложений, написанных с использованием JNI, для любых виртуальных машин Java на конкретной платформе. Поэтому скомпилированный С/С++ код должен исполняться Java-машинами например, в различных браузерах, средствах разработки, подобных Symantec Visual Cafe и Sun Java Workshop, для конкретной платформы (Win32 в рассматриваемом случае). Более ранние интерфейсы не удовлетворяли условию двоичной совместимости.

С помощью этого механизма байт-код Java может взаимодействовать с системным или прикладным платформенно-ориентированным кодом, запущенным непосредственно под управлением различных операционных систем.[1]

Платформенно-зависимый интерфейс JNI предоставляет доступ не ко всему интерфейсу прикладного программирования конкретной операционной системы, а лишь к некоторой его части. Впервые JNI использовался в Java версии 1.1 и был развит в Java 2.

Устаревший интерфейс

NMI (Native Method Invocation) был первым механизмом, специфицированным Sun для вызова из Java кода на C, и единственным механизмом, поддерживавшимся в JDK 1.0.2. Во всех последующих версиях Java NMI больше не поддерживается: его заменяет частично совместимый с ним механизм JNI.

Примечания

  1. Например, к ряду системных вызовов прикладного интерфейса программирования системы Windows (Windows API), Mac OS API или GNU/Linux

См. также

  • Platform Invoke (P/Invoke) (англ.) — аналог JNI в среде .NET Framework
  • Java Native Access (англ.) — библиотека для более удобного доступа к нативному коду из Java.

Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Java Native Interface" в других словарях:

  • 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… …   Deutsch Wikipedia

  • Java Native Interface — (JNI) es un framework de programación que permite que un programa escrito en Java ejecutado en la máquina virtual java (JVM) pueda interactuar con programas escritos en otros lenguajes como C, C++ y ensamblador. Contenido 1 Propósito y… …   Wikipedia Español

  • Java Native Interface — JNI redirects here. For the city in the province of Buenos Aires, see Junín, Buenos Aires. The Java Native Interface (JNI) is a programming framework that enables Java code running in a Java Virtual Machine (JVM) to call and to be called[1] by… …   Wikipedia

  • Java Native Interface — Le JNI (Java Native Interface) est un framework qui permet au code Java s exécutant à l intérieur de la JVM d appeler et d être appelé[1] par des applications natives (c est à dire des programmes spécifiques au matériel et au système d… …   Wikipédia en Français

  • Java AWT Native Interface — is an interface for the Java programming language that enables rendering libraries compiled to native code to draw directly to a Java Abstract Window Toolkit (AWT) Javadoc:SE|java/awt|Canvas object drawing surface.The Java Native Interface (JNI)… …   Wikipedia

  • Java Native Access — Infobox Software name = Java Native Access caption = developer = latest release version = 3.0.5 latest release date = release date|2008|08|14 latest preview version = latest preview date = operating system = Cross platform size = 606.9 KB… …   Wikipedia

  • Java Native Access — (JNA) ist eine Java Programmbibliothek für den Zugriff auf plattformspezifische ( native ) dynamische Programmbibliotheken (DLL in Windows). Hierbei muss im Unterschied zu JNI kein plattform spezifischer Code geschrieben werden. JNA ist in der… …   Deutsch Wikipedia

  • Java (Plattform) — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia

  • Java Platform, Standard Edition 6 — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia

  • Java Plattform — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»