2、從一個簡單例子開始
Java通過JNI調用C++/C,通過個簡單例子說明,計算兩個數之和。
Java文件:Add.java
public class Add{
static {
system.loadLibrary("add_jni");
}
public static synchronzied native CalcAdd_native(int a,int b);
public int CalcAdd(int a,int b)
{
return CalcAdd_native (a,b);
}
}
對編譯生成的.class 文件可以用javah自動生成相應的jni文件聲明,進入到生成的CalcNative.class 文件下,javah.exe -classpath path -jni CalcNative
Calc_add.cpp文件
JNIEXPORT jint JNICALL Java_Calc_add_1native (JNIEnv *env,jint a,jint b)
{
return (a + b);
}
生成的JNI接口名稱是Java_Calc_add_1native,其中Java是固定的關鍵字下面依次是包名,接口名,包名和包名,包名和接口名之間有”_”隔開,因爲接口名稱裏本身就帶了”_”,所有用”_1”,表示是接口內的符號,有點轉義字符的意思。