1. Напишите файл Java, объявите собственный метод и загрузите библиотеку динамических ссылок через статический блок операторов. Пример rample.java Code заключается в следующем:
Класс Приглашение {Private Native String getLine (String reffice); public static void main (string args []) {reffice p = new rasfor (); String input = p.getline ("type a line:"); System.out.println («Пользователь Typed:« + input); } static {System.LoadLibrary ("rasfor"); }} 2. Позвоните в команду Javac, чтобы сгенерировать файл reffice.class;
Javac Quicts.java
3. Позвоните в команду Javah, чтобы сгенерировать файл заголовка reffice.h для справки по программе C:
javah -jni
Автоматически сгенерированный файл заголовка выглядит следующим образом:
/ * Не редактируйте этот файл - он сгенерирован на машине */#include <jni.h>/ * Заголовок для приглашения класса */#ifndef _included_prompt#define _included_prompt#ifdef __cplusplusextern "c" (Ljava/lang/string;) ljava/lang/string; */Jniexport jstring jnicall java_prompt_getline (jnienv *, jobject, jstring);#ifdef __cplusplus}#endif#endif
4. Написать recavle.c -файл для реализации конкретных функций:
#include <jni.h> #include <stdio.h> #include "Quict.h" jniexport void jnicalljava_prompt_getline (jnienv *env, jobject obj, jstring abrding) {char buf [128]; const jbyte *str; str = (*env)-> getStringutfchars (env, rample, null); if (str == null) {return null; } printf ("%s", str); (*env)-> releaseStringUtfchars (env, rack, str); scanf ("%s", buf); return (*env)-> newstringutf (env, buf);} 5. Составьте динамическую библиотеку LibPrompt.so;
gcc -shared -fpic -i/usr/lib/jvm/java-6-sun-1.6.0.26/include -i/usr/lib/jvm/java-6-sun-1.6.0.26/include/incule/linux Quict.c -o libprompt.so
6. бежать.
java rample
Спасибо за чтение, я надеюсь, что это поможет вам. Спасибо за поддержку этого сайта!