Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah saya boleh memanggil kaedah Java daripada aplikasi C?
Mengantaramuka Java dan C : Memanggil Kaedah Java dari C
Keupayaan untuk memanggil fungsi Java dari dalam aplikasi C memang mungkin tetapi memerlukan pendekatan yang agak rumit. Mekanisme reflektif dan bukan jenis selamat ini melibatkan penciptaan tika Java Virtual Machine (JVM) daripada kod C.
Mencipta Instance JVM
Coretan kod di bawah menunjukkan cara untuk menyediakan tika JVM:
JavaVM *vm; JNIEnv *env; JavaVMInitArgs vm_args; vm_args.version = JNI_VERSION_1_2; vm_args.nOptions = 0; vm_args.ignoreUnrecognized = 1; // Construct a VM jint res = JNI_CreateJavaVM(&vm, (void **)&env, &vm_args);
Berinteraksi dengan Objek Java
Setelah tika JVM dibuat, anda boleh berinteraksi dengan objek Java. Berikut ialah contoh mencipta objek Java String:
jstring jstr = env->NewStringUTF("Hello World");
Mengakses Kaedah Java
Untuk mengakses kaedah Java, anda perlu mendapatkan kelas yang mengandungi kaedah:
jclass clazz = env->FindClass("java/lang/String");
Kemudian, dapatkan ID kaedah:
jmethodID to_lower = env->GetMethodID(clazz, "toLowerCase", "()Ljava/lang/String;");
Memanggil Kaedah Java
Akhir sekali, panggil kaedah pada objek:
jobject result = env->CallObjectMethod(jstr, to_lower);
Kompilasi
Di Ubuntu, susun kod menggunakan:
g++ -I/usr/lib/jvm/java-6-sun/include \ -I/usr/lib/jvm/java-6-sun/include/linux \ -L/usr/lib/jvm/java-6-sun/jre/lib/i386/server/ -ljvm jnitest.cc
Kesimpulan
Pendekatan ini membolehkan anda mengakses kaedah Java daripada aplikasi C, membolehkan kesalingoperasian antara kedua-dua bahasa. Walau bagaimanapun, adalah penting untuk melaksanakan pengendalian ralat yang betul untuk keteguhan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh memanggil kaedah Java daripada aplikasi C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!