我正在从 JNI 调用我的 native dll 的方法。它工作正常,但在我的 native 代码中的一个地方,我正在调用 exit(1) 以便 native 代码停止工作但发生的事情是它也导致退出我的 java 应用程序。我错过了什么吗? JNI 中是否有任何方法可以让我只能终止 native 代码而不是整个 Java 应用程序?
编辑: 基本上我是用 native 代码加密文件。我希望它在有人从 java 取消操作时停止加密。
如有任何帮助,我们将不胜感激。
最佳答案
JNI native 代码和 JVM 在同一个进程中运行。由于 exit
关闭进程,它也将结束 JVM。
杀死在 native 代码中执行的线程可能会泄漏资源,因此不受支持。看here了解更多详情。
关于java - 从 JNI 中的 native 代码退出会杀死 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14038543/