java方法和本机方法有什么区别?
是的,本机方法是使用与Java不同的语言编写的方法。以下是使用本机方法的步骤。
为C程序创建头文件(.h文件)。
创建C文件
创建一个DLL
在Java代码中,将方法声明为本机,使用System.loadLibrary()方法加载DLL并调用该方法。
示例
请看以下示例-
测试器
公共类测试仪
public class Tester { public native int getValue(int i); public static void main(String[] args) { System.loadLibrary("Tester"); System.out.println(new Tester().getValue(2)); } }
测试器
#include <jni.h> #include "Tester.h" JNIEXPORT jint JNICALL Java_Tester_getValue(JNIEnv *env, jobject obj, jint i) { return i * i; }
编译并运行
javac Tester.java javah -jni Tester gcc -shared -fpic -o libTester.so -I${JAVA_HOME}/include \ -I${JAVA_HOME}/include/linux Tester.c java -Djava.library.path =. Tester
输出结果
4