java中的方法在哪里_Java中的本机方法是什么,应在哪里使用?
小編典典
Java中的本機方法是什么,應在哪里使用?
一旦看到一個小例子,就很清楚了:
Main.java :
public class Main {
public native int intMethod(int i);
public static void main(String[] args) {
System.loadLibrary("Main");
System.out.println(new Main().intMethod(2));
}
}
Main.c :
#include
#include "Main.h"
JNIEXPORT jint JNICALL Java_Main_intMethod(
JNIEnv *env, jobject obj, jint i) {
return i * i;
}
編譯并運行 :
javac Main.java
javah -jni Main
gcc -shared -fpic -o libMain.so -I${JAVA_HOME}/include \
-I${JAVA_HOME}/include/linux Main.c
java -Djava.library.path=. Main
輸出 :
4
在Ubuntu 14.04上使用Oracle JDK 1.8.0_45進行了測試。
因此很明顯,它允許您執行以下操作:
使用Java中的任意匯編代碼調用經過編譯的動態加載的庫(此處用C編寫)
并將結果返回Java
這可以用來:
使用更好的CPU組裝指令在關鍵部分上編寫更快的代碼(非CPU可移植)
進行直接系統調用(非OS便攜式)
以降低便攜性為代價。
也可以從C調用Java,但是必須首先在C中創建JVM:如何從C++調用Java函數?
2020-09-11
總結
以上是生活随笔為你收集整理的java中的方法在哪里_Java中的本机方法是什么,应在哪里使用?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 数组 内存_图解Java数组的
- 下一篇: java callable用法_在Jav