C 開発者として、アプリケーション内から Java コードを操作する必要があるシナリオに遭遇する可能性があります。これは、C/C と Java コード実行環境の間のブリッジを提供する Java Native Interface (JNI) を使用して実現できます。
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 中国語 Web サイトの他の関連記事を参照してください。