jni 保存jvm變量及c中調用

可以在jni的實現文件中,添加JNIEXPORT jint JNICALL  JNI_OnLoad(JavaVM *vm, void *reserved);實現jvm的獲取,此函數會在java加載native 庫時調用。

也可以在native的實現函數中獲取jvm變量。

代碼:

聲明全局變量:  JavaVM* jvm;

jint retint = env->GetJavaVM(&jvm);
 

獲取jvm並存儲的目的是:實現c到java的反調,而不是回調。

在反調中應該是這樣的:

JNIEnv * env;

jint envret = jvm->AttachCurrentThread((void**)&env,NULL);

....


jvm->DetachCurrentThread();









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章