如何从共享库中调用函数

时间:2013-03-19 04:13:49

标签: java c++ c linux java-native-interface

我的系统(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;
}

有可能吗?

1 个答案:

答案 0 :(得分:0)

你会用

env->CallVoidMethod(obj, methodID)

使用类似

的方法获取methodID

jmethodID = env->GetMethodID(classID, "javaFuntion", signature)

其中classID是类的id,而signature是函数的签名。您可以使用javap获取签名。所有这些都有很好的记录。你应该可以从那里拿走它。