Terdapat dua cara untuk mesin maya Java berinteraksi dengan kod tempatan: JNI (Antara Muka Asli Java): mengakses fungsi kod tempatan melalui rangka kerja pengaturcaraan dan mengurus struktur dan sumber data tempatan. JNA (Java Native Access): Menyediakan perpustakaan untuk memudahkan panggilan kod tempatan, memuatkan perpustakaan fungsi tempatan dan mencipta contoh antara muka untuk mengakses fungsi setempat.
Cara Java Virtual Machine Berinteraksi dengan Native Code
Java Virtual Machine (JVM) boleh berinteraksi dengan kod asli, membenarkan program Java mengakses sumber di luar skop JVM. Berikut ialah dua cara utama mesin maya Java berinteraksi dengan kod asli:
JNI (Antara Muka Asli Java)
JNI (Antara Muka Asli Java) ialah rangka kerja pengaturcaraan yang membolehkan program Java memanggil fungsi kod asli. Ia menyediakan kaedah untuk mengakses kod asli daripada kod Java dan menyediakan mekanisme untuk mengurus struktur dan sumber data asli.
Langkah:
Contoh:
// 头文件JNIExample.h JNIEXPORT jint JNICALL Java_com_example_JNIExample_calculate(JNIEnv *env, jobject obj, jint x, jint y) { return x + y; }
// Java代码调用JNI public class JNIExample { static { System.loadLibrary("JNIExample"); // 加载本地函数库 } public static int calculate(int x, int y) { return nativeCalculate(x, y); // 调用本地函数 } private static native int nativeCalculate(int x, int y); // 本地函数声明 }
JNA (Java Native Access)
JNA (Java Native Access) ialah perpustakaan yang memudahkan interaksi dengan kod asli. Ia menyediakan banyak fungsi dan alatan yang memudahkan untuk memanggil fungsi asli daripada kod Java.
Langkah:
Contoh:
// 接口NativeLib.java public interface NativeLib { int calculate(int x, int y); }
// Java代码调用JNA public class JNAExample { private static final NativeLib LIB = (NativeLib) Native.loadLibrary("JNIExample", NativeLib.class); public static int calculate(int x, int y) { return LIB.calculate(x, y); // 调用本地函数 } }
Ringkasnya, Mesin Maya Java berinteraksi dengan kod asli melalui JNI dan JNA, membenarkan program Java mengakses sumber di luar skop JVM.
Atas ialah kandungan terperinci Cara mesin maya Java berinteraksi dengan kod asli. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!