C 개발자라면 애플리케이션 내에서 Java 코드와 상호 작용해야 하는 시나리오에 직면할 수 있습니다. 이는 C/C와 Java 코드 실행 환경 사이를 연결하는 JNI(Java Native Interface)를 사용하여 달성할 수 있습니다.
JNI 내에서 C 프로그램은 Java 클래스를 로드 및 실행하고 해당 메서드를 호출할 수 있습니다. 그러나 이 프로세스에서는 다음 사항을 신중하게 고려해야 합니다.
다음은 Java String 클래스의 toLowerCase 메소드를 호출하는 방법을 보여주는 C 예제입니다.
#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; }
기억하세요 JNI 메소드의 반환 코드를 확인하여 오류 조건을 적절하게 처리합니다. 이는 Java 메소드와 상호작용하는 동안 C 애플리케이션의 강력한 작동을 보장합니다.
위 내용은 JNI를 사용하여 C 애플리케이션에서 Java 메소드를 호출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!