退出JNI中的本机代码会导致Java应用程序死亡

Awa*_*ais 2 java windows dll java-native-interface native

我从JNI调用了我的原生dll的方法.它工作正常,但在我的本机代码中的一个地方,我调用exit(1),以便本机代码停止工作但发生的是它也导致退出我的Java应用程序.我错过了什么吗?在JNI中是否有任何方法,以便我只能杀死本机代码而不是整个Java应用程序?

编辑:基本上我用本机代码加密文件.当有人从java取消操作时,我希望它停止加密.

任何帮助将不胜感激.

Hen*_*nry 6

JNI本机代码和JVM在同一进程中运行.由于exit关闭了进程,它也将结束JVM.

杀死在本机代码中执行的线程可能会泄漏资源,因此不受支持.看这里了解更多详情.