Java 方法与本机方法有什么区别?
本机方法是用其他语言(如 c++ 和 Java)实现其方法的方法。这些程序通过 JNI 或 JNA 接口与 Java 链接。
普通方法和本机方法的区别是本机方法声明包含 native 关键字,而且,该方法的实现将是其他编程语言。
示例
Tester.java
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));
}
}
Tester.c
#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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP