1. Javaファイルを作成し、ネイティブメソッドを宣言し、静的ステートメントブロックを介して動的リンクライブラリをロードします。 emplief.javaコードの例は次のとおりです。
クラスプロンプト{プライベートネイティブ文字列getline(string prompt); public static void main(string args []){prompt p = new Prompt();文字列input = p.getline( "タイプA行:"); system.out.println( "ユーザーtyped:" + input); } static {system.loadLibrary( "prompt"); }} 2。Javacコマンドを呼び出して、prompt.classファイルを生成します。
Javac Prompt.java
3。Javahコマンドを呼び出して、cプログラムによる参照用のprompt.hヘッダーファイルを生成します。
Javah -Jniプロンプト
自動化されたヘッダーファイルは次のとおりです。
/ *このファイルを編集しないでください - それはマシン生成されたマシンです */#クラスプロンプトの<jni.h>/ *ヘッダーを含む */#ifndef _included_prompt#define _included_prompt#ifdef __cplusplusextern "c" {#endif/ * * class:provent * signature:(ljava/string;) */jniexport jstring jnicall java_prompt_getline(jnienv *、jobject、jstring);#ifdef __cplusplus}#endif#endif 4。特定の関数を実装するためのprompt.cファイルを書き込みます。
#include <jni.h> #include <stdio.h> #include "prompt.h" jniexport void jnicalljava_prompt_getline(jnienv *env、jobject obj、jstring prompt){char buf [128]; const jbyte *str; str =(*env) - > getStringutfchars(env、prompt、null); if(str == null){return null; } printf( "%s"、str); (*env) - > releastringutfchars(env、prompt、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/linux prompt.c -o libprompt.so
6。実行します。
Javaプロンプト
読んでくれてありがとう、私はそれがあなたを助けることができることを願っています。このサイトへのご支援ありがとうございます!