如何释放JNI环境指针? 我有一个典型的C++代码,它启动JNI:< /P> JNIEnv* env = NULL; ... ProcAdd = ( JNI_JVMPROC ) GetProcAddress( hinstLib, "JNI_CreateJavaVM" ); jint createResult = ( ProcAdd ) ( &m_jvm, ( void** ) & env, &vm_args );
这个很好用。然而,我并没有在代码中的任何地方释放env。我想知道我是否需要释放它?如果是,怎么做 我在我的代码上运行了PurifyPlus,它在上面代码的下面一行给了我漏洞:如何释放JNI环境指针? 我有一个典型的C++代码,它启动JNI:< /P> JNIEnv* env = NULL; ... ProcAdd = ( JNI_JVMPROC ) GetProcAddress( hinstLib, "JNI_CreateJavaVM" ); jint createResult = ( ProcAdd ) ( &m_jvm, ( void** ) & env, &vm_args );,c++,java-native-interface,C++,Java Native Interface,这个很好用。然而,我并没有在代码中的任何地方释放env。我想知道我是否需要释放它?如果是,怎么做 我在我的代码上运行了PurifyPlus,它在上面代码的下面一行给了我漏洞: jint createResult = ( ProcAdd ) ( &m_jvm, ( void** ) & env, &vm_args ); PurifyPlus发出的警告是: [W] MLK:JVM\u FindSignal[JVM.DLL]中分配的120个块的25941字节内存泄漏当您完成J
jint createResult = ( ProcAdd ) ( &m_jvm, ( void** ) & env, &vm_args );
PurifyPlus发出的警告是:
[W] MLK:JVM\u FindSignal[JVM.DLL]中分配的120个块的25941字节内存泄漏当您完成Java虚拟机时,您需要销毁JVM实例:
(*jvm)->DestroyJavaVM(jvm);
JNIEnv引用由JVM管理,因此您不需要显式释放它。使用Java虚拟机后,您需要销毁JVM实例:
(*jvm)->DestroyJavaVM(jvm);
JNIEnv引用由JVM管理,因此不需要显式释放它。我正在销毁JVM实例。那么说PurifyPlus给出了错误的警告是否安全呢?是否有任何官方文件/页面谈到这一点?我找不到一个。我要离开中的示例。JVM本身完全可能存在内存泄漏。我正在销毁JVM实例。那么说PurifyPlus给出了错误的警告是否安全呢?是否有任何官方文件/页面谈到这一点?我找不到一个。我要离开中的示例。JVM本身完全可能存在内存泄漏。