0

システムに共有ライブラリをロードしています (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;
}

それが可能だ?

4

1 に答える 1

0

あなたが使うだろう

env->CallVoidMethod(obj, methodID)

次のような方法でmethodIDを取得する場所

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

ここで、classID はクラスの ID、signature は関数のシグネチャです。javap を使用して署名を取得できます。これはすべて十分に文書化されています。そこから取れるはずです。

于 2013-03-20T17:23:10.737 に答える