ПредишенСледващото

JNI - Java роден интерфейс - например

Превод няма да даде обща представа, която е тази на JVM може да работи кода, който е написан на компилиран език (като C) и се намира на диска като .dll (за Unix обикновено Така че)

JNI е, че и да се прилагат за тези, които имат нужда от предизвикателства, които JAVA не могат да направят най-малко - това е някои машинно зависим инструкции, или се отнасят до приложния програмен интерфейс на операционната система, призив към шофьорите и други.

Пълно описание може да се намери тук: Java Native Interface

А по-долу се прави много просто изпълнение, използващо JNI. Пример за това е направено, за да видите колко е лесно да се използва този механизъм.

1. Създаване на редовен клас на JAVA, но метода, който трябва да се използва DLL описват като роден. Освен използването на призива, който зарежда нашата DLL.

обществени клас JniTest

System. LoadLibrary ( "JniTest");

// привлека вниманието ви към думата родния

обществен родния вътр showString (String съобщение);

Сега ние компилирате нашия пример

javac JniTest. Ява

Ако нищо страшно се е случило, а след това на теория би трябвало да получим JniTest.class файл.

Сега процесът го javah полезност. Тази програма ще ни създаде .h файл за нашата програма.
Важно: необходимо е да се напише без разширението на файла.

javah -classpath. JniTest

Вземи JniTest.h подаде тук тази форма.

Трябва да се обърне внимание на линии за преработка. Другите променливи обикновено не са толкова сложни. И тук ние виждаме, че е необходимо да се дръпнем низ от Unicode към обикновен знак.
Сега DLL, което правим за нашия проект. Би било по-добре, че системата вече е установено, начинът на компилатора.
JAVA_HOME - това е променливата на обкръжението, че аз винаги предписва. Като цяло, това е пътят към директорията с инсталирана JAVA - например C: \ j2sdk15. (Мисля, че това е разбираемо)

сантилитра -I% JAVA_HOME% \ включва -I% JAVA_HOME% \ включват \ win32 -LD JniTest.cpp -FeJniTest.dll

CL - съставител на тази C ++ от Visual C ++. Можете да използвате всеки друг компилатор. Важно е да се съберат нашият източник в С в продължение на DLL.

Тя може да се види, че в резултат на компилацията е да бъде JniTest.dll. Между другото, за Unix-базирани системи трябва да са тип файл libJniTest.so а. Ето една функция. Нуждаете се от префикс ИЪ.

Сега направете тест.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!