Pierwsze kroki z natywnym interfejsem Java

Pierwsze kroki z natywnym interfejsem Java
Java Native Interface, skrócony JNI, to interfejs programowy, który pozwala programistom Java uruchamianie kodów i fragmentów z innych języków programowania w Javie. Jest w połączeniu z niezbędnym zestawem oprogramowania Java lub SDK (omówimy to w innym samouczku).

JNI jest również czczony, aby funkcja wywoływała API, aby zakraść się w wirtualnej maszynie Java w aplikacjach Java. Umożliwia to dewelom wywołanie kodu Java w kodzie natywnej aplikacji.

Jeśli spędziłeś trochę czasu na pracy z Javą, prawdopodobnie już natkniesz się na wiele problemów związanych z wydajnością, które nieuchronnie nadejdą na twoją drogę. To nie jest problem, gdy uruchamiasz ten sam kod w języku ojczystym, który może działać ponad osiemnaście razy szybciej, gdy odczytano w skompilowanym modelu. Oprócz tego możesz również używać przestarzałych/niezgodnych procedur sprzętowych z natywnymi kodami w innych językach.

Ten samouczek pokaże, w jaki sposób można wywołać kod C/C ++ z komputera z aplikacji Java.

Wymagania wstępne

Będziesz potrzebować kilku rzeczy, aby właściwie przestrzegać tego przewodnika. Należą do nich kompilator Java lub Javac.exe, wraz z JVM, a także natywnym generatorem metody C (Javah.exe). Wszystkie trzy z nich są wbudowane w zestaw programistycznych, więc wszyscy jesteście dobrzy, jeśli to masz. Oprócz tych trzech potrzebujesz również plików definiujących JNI, w tym plików nagłówków natywnych i kompletnych plików biblioteki.

I oczywiście, w samouczku o uruchomieniu kodów C i C ++, użyjemy również kompilatora C do utworzenia biblioteki udostępnionej.

Komponenty JNI

JNI jest napędzany głównie dwoma komponentami, a mianowicie H i Javah. H jest komponentem pliku nagłówka, który zastępuje natywne kody kodem Java, podczas gdy Javah tworzy, aby ten plik można było załadować do plików nagłówka aplikacji samodzielnie.

Wywołując C/C ++ z kodu Java

Krok 1: Pisanie kodu w Javie

Kod jest najpierw napisany w Javie i jest zgodny z trzema warunkami. Po pierwsze, jest napisany natywną metodą, która zostanie powołana później. Po drugie, musi załadować współdzieloną bibliotekę, której częścią jest kod natywny, a na koniec musi wywoływać metody natywne.

Użyjmy tego kodu, aby jeszcze bardziej zilustrować:

UWAGA LINIA 3 i 6; Są to linie, w których uwzględniane są metody natywne. Kod, który ładuje wspólne biblioteki, znajduje się w linii 10, co prowadzi do wywołania metody między wierszami 12–15.

Krok 2: Kompilowanie kodu Java do kodu bajtego

Drugi krok dotyczy opracowania kodu Java. Kompilator Javac może wykonać dla nas zadanie; Po prostu wydaj poniższe polecenie:

$ Javac Przykład 1.Jawa

Krok 3: Utwórz pliki nagłówka C/C ++

Następnie należy utworzyć pliki nagłówka języka ojczystego. Ten nagłówek zasila podpisy natywnych kodów.

Te pliki nagłówka można utworzyć za pomocą natywnego narzędzia Javah, generatora STUP w pakiecie z SDK, używając następującego polecenia:

Javah Przykład 1

Następujące dane wyjściowe powinny powrócić:

Krok 4: Pisanie kodu natywnego

W tym miejscu napiszemy kod C/C ++. Powinieneś zwrócić uwagę na wszystkie podpisy, które muszą przypominać deklaracje, które złożyliśmy w kroku 1.

Poniżej znajduje się implementacja napisana w języku C:

Krok 5: Utwórz bibliotekę udostępnioną

Udostępnioną bibliotekę można utworzyć z dowolnym kompilatorem. Ponieważ współdzielona biblioteka zawiera kod natywny, będziemy musieli go utworzyć.

Krok 6: Uruchom swój program

Ten krok obejmuje ocenę kodu i identyfikację problemów z programem. Będzie to obejmować środowisko wykonawcze Java, ponieważ kod zostanie wykonany przede wszystkim w JVM.

Wydaj następujące polecenie:

Przykład Java1

Powinien powrócić:

To był nasz krótki przewodnik po użyciu natywnego interfejsu Java. Mamy nadzieję, że uznałeś to za pomocne.

Nauka pracy z JNI jest niezbędna dla każdego, kto chce opracować aplikacje Java, zwłaszcza aplikacje na Androida do smartfonów.