Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah saya boleh memanggil kaedah Java daripada aplikasi C menggunakan JNI?
Sebagai pembangun C, anda mungkin menghadapi senario di mana anda perlu berinteraksi dengan kod Java dari dalam aplikasi anda. Ini boleh dicapai menggunakan Antara Muka Asli Java (JNI), yang menyediakan jambatan antara C/C dan persekitaran pelaksanaan kod Java.
Dalam JNI, program C boleh memuatkan dan melaksanakan kelas Java dan menggunakan kaedahnya. Walau bagaimanapun, proses tersebut memerlukan pertimbangan yang teliti terhadap perkara berikut:
Berikut ialah contoh dalam C yang menunjukkan cara memanggil kaedah toLowerCase kelas Java String:
#include <jni.h> int main() { // Construct a VM JavaVM *vm; JNIEnv *env; JavaVMInitArgs vm_args; vm_args.version = JNI_VERSION_1_2; int res = JNI_CreateJavaVM(&vm, (void **)&env, &vm_args); // Get a String object jstring jstr = env->NewStringUTF("Hello World"); // Find the String class jclass clazz = env->FindClass("java/lang/String"); // Get the toLowerCase method jmethodID to_lower = env->GetMethodID(clazz, "toLowerCase", "()Ljava/lang/String;"); // Call the toLowerCase method jobject result = env->CallObjectMethod(jstr, to_lower); // Get a C-style string const char* str = env->GetStringUTFChars((jstring) result, NULL); printf("%s\n", str); // Clean up env->ReleaseStringUTFChars(jstr, str); vm->DestroyJavaVM(); return 0; }
Ingat untuk mengendalikan keadaan ralat dengan sewajarnya dengan menyemak kod pemulangan daripada kaedah JNI. Ini memastikan operasi teguh aplikasi C anda semasa berinteraksi dengan kaedah Java.
Atas ialah kandungan terperinci Bagaimanakah saya boleh memanggil kaedah Java daripada aplikasi C menggunakan JNI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!