
Java Native Interface (JNI) — это платформа, которая позволяет приложениям Java подключаться к собственному коду. Нативный код — это код, который выполняется непосредственно в операционной системе, а JNI позволяет Java-программам взаимодействовать с собственным кодом. Собственный интерфейс Java (JNI) предлагает метод вызова собственного кода из Java и наоборот. В этом посте мы представим введение в JNI, а также инструкции по его использованию, а также обсуждение его преимуществ и недостатков.
Курс разработки Java даст вам больше информации по теме.
Что такое JNI?
Собственный интерфейс Java (JNI) — это платформа, которая позволяет приложениям Java взаимодействовать с кодом, написанным на других языках. Это позволяет вызывать собственный код из Java, а также наоборот. Собственный интерфейс Java (JNI) — это набор API-интерфейсов, который позволяет приложениям Java получать доступ к собственным библиотекам кода и системным функциям, которые в противном случае были бы недоступны в среде Java.
Собственный интерфейс Java (JNI) и виртуальная машина Java являются двумя основными компонентами, составляющими JNI (JVM).
Java Native Method Interface (JNMI) — это интерфейс, который соединяет язык программирования Java с собственным кодом. Он делает это, предоставляя набор методов, которые Java-приложения могут использовать для вызова функций, написанных в машинном коде, и для передачи данных туда и обратно между Java и машинным кодом.
Приложения Java выполняются на платформе, известной как виртуальная машина Java (JVM). Он предлагает среду выполнения, которую можно использовать для выполнения байт-кода Java. Виртуальная машина Java (JVM) предлагает набор методов, позволяющих собственному коду получать доступ к объектам Java и вызывать код Java.
КАК ПОЛЬЗОВАТЬСЯ JNI?
При использовании JNI требуются следующие процедуры:
Создайте нативный код:
Разработайте код на своем родном языке, который вы хотите вызывать из Java. Этот код должен быть сначала встроен в разделяемую библиотеку, прежде чем JVM сможет его загрузить.
Создайте код Java:
Напишите код Java, который будет вызывать код, написанный на исходном языке. Этот фрагмент кода должен содержать объявление нативного метода, соответствующего функции нативного кода.
Создайте файл заголовка:
Создайте файл заголовка, определяющий собственный метод, с помощью инструмента Java Native Interface (JNI).
Внедрите нативный код:
Создайте функцию, используя собственный код, и поместите ее в общую библиотеку.
Загрузить общую библиотеку:
Перенесите общую библиотеку в JVM, чтобы ее можно было использовать.
Вызов собственного метода:
Java следует использовать для вызова соответствующего нативного метода.
Чтобы продемонстрировать, как использовать JNI для вызова метода собственного кода, который возвращает строку, рассмотрим следующий пример:
Собственный код:
c
Скопировать код
#include ‹jni.h›
JNIEXPORT jstring JNICALL Java_MyClass_hello(JNIEnv *env, объект задания) {
return (*env)-> NewStringUTF(env, «Привет из нативного кода!»);
}
Java-код:
Джава
Скопировать код
открытый класс MyClass {
статический {
System.loadLibrary («mylib»);
}
общедоступная нативная строка hello();
public static void main(String[] args) {
Объект MyClass = новый MyClass();
Результат строки = obj.hello();
System.out.println(результат);
}
}
ПРЕИМУЩЕСТВА JNI
Возможность доступа к нативному коду:
Доступ к собственным библиотекам кода и системным функциям, которые обычно недоступны в контексте Java, возможен через собственный интерфейс Java (JNI).
Производительность:
Некоторые типы приложений, например те, которым требуется низкоуровневый доступ к системным ресурсам, могут выиграть от повышенной производительности, обеспечиваемой с помощью JNI.
Переносимость:
Собственный интерфейс Java (JNI) позволяет переносить приложения Java на широкий спектр платформ, включая те, которые не поддерживают виртуальную машину Java.
Курс разработки бэкенда на Java улучшит ваши знания и навыки.
НЕДОСТАТКИ JNI
Сложность:
Из-за своей сложности JNI требует от разработчика знакомства как с Java, так и с созданием собственного кода.
Код для конкретной платформы:
Поскольку JNI требует построения кода, который отличается для каждой платформы, может быть сложно поддерживать и переносить программы между несколькими операционными системами.
Безопасность:
При неправильном использовании JNI может создавать потенциальные проблемы с безопасностью. Тот факт, что код JNI может выполнять произвольный собственный код, представляет собой возможный риск для безопасности.
ЗАКЛЮЧЕНИЕ
JNI — это надежная инфраструктура, которая позволяет приложениям Java взаимодействовать с кодом, написанным на родных языках. Он обеспечивает доступ к собственным библиотекам кода, а также к системным службам, которые недоступны в контексте Java. JNI — это собственный интерфейс Java, который можно использовать для переноса программ Java на широкий спектр различных платформ. Это также может повысить производительность некоторых видов приложений. Тем не менее, JNI — это сложная среда, которая требует от разработчика навыков работы с Java в дополнение к разработке собственного кода.
Стоимость курса разработчика Java может доходить до 1 лакха индийских рупий.