Rumah > Java > javaTutorial > Cara mesin maya Java berinteraksi dengan kod asli

Cara mesin maya Java berinteraksi dengan kod asli

PHPz
Lepaskan: 2024-04-13 22:30:01
asal
920 orang telah melayarinya

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 mesin maya Java berinteraksi dengan kod asli

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:

  1. Buat fail pengepala JNI untuk mengisytiharkan fungsi setempat yang akan dipanggil.
  2. Tulis kod Java untuk memuatkan fungsi asli.
  3. Gunakan fungsi JNI untuk memanggil kod tempatan.

Contoh:

// 头文件JNIExample.h
JNIEXPORT jint JNICALL Java_com_example_JNIExample_calculate(JNIEnv *env, jobject obj, jint x, jint y) {
    return x + y;
}
Salin selepas log masuk
// 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); // 本地函数声明
}
Salin selepas log masuk

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:

  1. Buat antara muka yang menerangkan fungsi setempat yang akan dipanggil.
  2. Gunakan JNA untuk memuatkan perpustakaan fungsi tempatan.
  3. Buat contoh antara muka dan panggil fungsi setempat.

Contoh:

// 接口NativeLib.java
public interface NativeLib {
    int calculate(int x, int y);
}
Salin selepas log masuk
// 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); // 调用本地函数
    }
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan