Я пытаюсь следующий код для вызова функции Java executeSHA () из кода C. Но я продолжаю получать сообщение об ошибке «запрос на членство« DestroyJavaVM »в чем-то, что не является структурой или объединением». Я проверил несколько ссылок в Интернете и, кажется, я использую его, как уже упоминалось.
JavaVM *jvm;
JNIEnv *env;
JavaVMOption options[3];
JavaVMInitArgs vm_args;
vm_args.version = JNI_VERSION_1_2;
JNI_GetDefaultJavaVMInitArgs(&vm_args);
options[0].optionString = "/home/amy/jni/";
vm_args.options = options;
JNI_CreateJavaVM(&jvm, &env, &vm_args);
jclass cls = (*env)->FindClass(env, "CallToBCLib");
jmethodID mid = (*env)->GetStaticMethodID(env, cls, "performSHA", "ILjava/lang/String;");
(*env)->CallStaticVoidMethod(cls, mid, algo_id, tc->m1);
jvm->DestroyJavaVM(); <-- ERROR
Также правильно ли использовать FindClass, GetStaticMethodID и CallStaticVoidMethod? executeSHA - это функция Java, которую я вызываю, а algo_id, tc-> m1 - мои аргументы функции Java ...