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