En tant que développeur C, vous pouvez rencontrer des scénarios dans lesquels il est nécessaire d'interagir avec le code Java depuis votre application. Ceci peut être réalisé à l'aide de l'interface native Java (JNI), qui fournit un pont entre les environnements d'exécution de code C/C et Java.
Au sein de JNI, les programmes C peuvent charger et exécuter des classes Java et invoquer leurs méthodes. Cependant, le processus nécessite un examen attentif des éléments suivants :
Voici un exemple en C qui montre comment appeler la méthode toLowerCase de la classe 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; }
Rappelez-vous pour gérer les conditions d'erreur de manière appropriée en vérifiant les codes de retour des méthodes JNI. Cela garantit le fonctionnement robuste de votre application C tout en interagissant avec les méthodes Java.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!