Първи стъпки с Java Native Interface (JNI)

Getting Started With Java Native Interface



Java Native Interface, съкратено JNI, е интерфейс за програмиране, който позволява на Java разработчиците да изпълняват кодове и фрагменти от други езици за програмиране в Java. Той идва в комбинация с основния комплект за разработка на софтуер за Java или SDK (ще разгледаме това в различен урок).

JNI също е почитан за своята функция да извиква API, за да се промъкне във виртуална машина на Java в Java приложения. Това позволява на разработчиците да извикват Java кода в кода на родното приложение.







Ако сте прекарали известно време в работа с java, вероятно вече сте се сблъскали с многото проблеми с производителността, които неизбежно възникват. Това не е проблем, когато изпълнявате същия код на родния език, който може да работи над осемнадесет пъти по -бързо, когато се чете в компилиран модел. В допълнение към това можете да използвате и остарели/несъвместими хардуерни процедури с местни кодове на други езици.



Този урок ще покаже как машинният C/C ++ код може да бъде извикан от Java приложение.



Предпоставки

Ще ви трябват няколко неща, които да следвате правилно с това ръководство. Те включват Java компилатора или Javac.exe, заедно с JVM, както и родния генератор на метод C (javah.exe). И трите са вградени в комплекта за разработка на софтуер, така че всичко е наред, ако го имате. Освен тези три, ще ви трябват и файловете, които определят JNI, включително нативните заглавни файлове и пълните библиотечни файлове.





И разбира се, в урок за стартиране на C и C ++ кодовете, ние също ще използваме C компилатора, за да създадем споделена библиотека.

Компоненти на JNI

JNI се задвижва главно от два компонента, а именно h и javah. H е компонентът на заглавния файл, който замества родните кодове с java код, докато Javah го прави така, че този файл може да бъде зареден сам в заглавните файлове на приложението.



Извикване на C/C ++ от Java кода

Стъпка 1: Писане на кода в Java

Кодът първо е написан на java и е в съответствие с три условия. Първо, той е написан с родния метод, който да бъде извикан по -късно. На второ място, той трябва да зареди споделената библиотека, от която е родният код, и накрая, той трябва да извика родните методи.

Нека използваме този код, за да илюстрираме допълнително:

Реплики 3 и 6; това са редовете, в които са включени родните методи. Кодът, който зарежда споделените библиотеки, се намира на ред 10, което води до извикване на метода между редове 12 до 15.

Стъпка 2: Компилиране на Java кода в байт код

Втората стъпка е свързана с компилирането на java кода. Компилаторът javac може да свърши работата тук вместо нас; просто издайте командата по -долу:

$ javac Пример 1.java

Стъпка 3: Създайте заглавни файлове на C/C ++

След това трябва да се създадат заглавни файлове на родния език. Тези заглавни файлове захранват подписите на родните кодове.

Тези заглавни файлове могат да бъдат създадени с родния инструмент javah, генератор на C stub в комплект със SDK, като се използва следната команда:

javah Пример 1

Следният изход трябва да се върне:

Стъпка 4: Писане на родния код

Тук ще напишем C/C ++ код. Трябва да отбележите всички подписи, които трябва да наподобяват декларациите, които направихме в стъпка 1.

Следва изпълнение, написано на език C:

Стъпка 5: Създайте споделена библиотека

Споделена библиотека може да бъде създадена с всеки компилатор. Тъй като споделената библиотека съдържа родния код, ще трябва да го създадем.

Стъпка 6: Стартирайте програмата си

Тази стъпка включва оценка на кода и идентифициране на всички проблеми с програмата. Това ще включва средата за изпълнение на Java, защото кодът ще се изпълнява предимно в JVM.

Издайте следната команда:

java Пример 1

Трябва да се върне:

Това беше нашето кратко ръководство за начинаещи за използване на Java Native Interface. Надяваме се, че сте го намерили за полезно.

Да се ​​научиш да работиш с JNI е от съществено значение за всеки, който иска да разработва Java приложения, особено андроид приложения за смартфони.