Java和C是兩種不同的編程語言,但有時候我們需要讓它們交互,這時候就需要用到Java Native Interface(JNI)。
JNI是一種Java平臺的標準編程接口,它允許Java應用程序通過Native Method Interface(NMI)調用本地方法庫中的函數或C程序。下面是一個簡單的例子:
public class CallC { static { System.loadLibrary("myLib"); // 加載名為myLib的本地庫 } public static native int callCFunc(int a, int b); // 聲明一個本地方法 public static void main(String[] args) { int result = callCFunc(100, 200); // 調用本地方法 System.out.println(result); // 輸出結果 } }
上面的代碼聲明了一個本地方法callCFunc,它位于名為myLib的本地庫中。在main方法中,通過調用callCFunc方法,將a和b傳遞給本地方法,并將結果返回到Java程序中。
下面是在C程序中實現本地方法的示例:
#includeJNIEXPORT jint JNICALL Java_CallC_callCFunc(JNIEnv * env, jobject obj, jint a, jint b) { jint result; // 定義一個整型變量result result = a + b; // 將a和b相加 return result; // 返回result }
在C程序中,首先要包含jni.h頭文件,然后實現Java程序中定義的callCFunc方法。在本例中,實現的功能很簡單,就是把a和b相加。在C程序中完成計算后,將結果返回到Java程序中。
通過JNI,Java程序和C程序可以很方便地互相調用。但是,由于涉及到本地方法調用,因此需要注意內存泄漏和安全問題。
上一篇python畫提琴圖
下一篇php js josn