Javaでローカルコードを呼び出す

1584 ワード

Javaで呼び出す.dllでのローカルコードのメソッドの説明:
環境:JDK:C:Documents and Settingsmzq>java-versionjava version"1.6.0_05"Java(TM)SE Runtime Environment(build 1.6.0_05-b 13)Java HotSpot(TM)Client VM(build 10.0-b 19,mixed mode,sharing)
ローカルコードコンパイル環境:MS Visual Studio 2008
1)Javaコードの作成例コードは以下の通りである.
public class JNITest {
public static void main (String args[]) {
if (args.length > 0) {
int x = new Integer(args[0]).intValue();
int a = new mynative().cubecal(x);
System.out.println(a);
}
}
}

 
class mynative {public native int cubecal(int x);static { System.loadLibrary("mynative");}}
myntive類の内容に注意すればよい.
2)ローカルメソッドとして呼び出されたmynive.hヘッダファイルを生成する
D:\workspace_java\JNI\src>javac JNITest.java
D:\workspace_java\JNI\src>javah -jni mynative
3)ローカルコード作成注意:コード拡張子は必ず.cを使用する
myntive.hによる作成
#include "jni.h"

 
int cube(int x) {return (x*x*x);}
JNIEXPORT jint JNICALL Java_mynative_cubecal(JNIEnv *e, jobject o, jint x) {return cube(x);}
4)依存関係の解決$JAVA_HOME$/include/jni.h$JAVA_HOME$/include/win 32/jni_md.hおよびmynive.hをvs 2008 projディレクトリにコピー
5)コンパイル生成mynive.dll
6)myntive.dllをJavaプロジェクトディレクトリにコピーして実行すればよい
D:workspace_javaJNIbinのディレクトリ
2008-06-02 14:52 413 mynative.class 2008-06-02 14:52 719 JNITest.class 2008-06-02 15:39 7168 mynative.dll 3ファイル8300バイト2ディレクトリ7816396800使用可能バイト
D:\workspace_java\JNI\bin>java JNITest 9729
 
 
この文書のバックアップ:http://fclose.com/b/programming/89/