我的系统(Java + Linux)中加载了一个共享库。
System.loadLibrary("mylib");
我想从 mylib 调用 java 函数,例如:
JNIEXPORT void JNICALL Java_absoluta_web_AW_10001_Funcao3(JNIEnv *env, jobject obj) {
javaFUnction();
printf("Here...\n");
return;
}
可能吗?
最佳答案
你会使用
env->CallVoidMethod(obj, methodID)
在哪里获取 methodID,例如
jmethodID = env->GetMethodID(classID, "javaFuntion", 签名)
其中 classID 是类的 id,signature 是函数的签名。您可以使用 javap 获取签名。所有这些都有据可查。您应该能够从那里获取它。
关于java - 如何从共享库调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15491369/