java - 从 JNI 中的 native 代码退出会杀死 Java 应用程序

标签 java windows dll java-native-interface native

我正在从 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/

相关文章:

java - 这段代码中的中序遍历有什么问题?

java - Liferay JSON Web 服务位于/api/jsonws,对任何用户开放访问

windows - Windows 上的 Jenkins - 无法连接到 SMTP 主机, "Unrecognized SSL message"

visual-studio-2015 - 全屏模式 - Windows 10 App (JS)

visual-studio-2008 - R6034 : An application has made an attempt to load the C runtime library incorrectly

java - 如何在java中实现SOA?

java - 将 Android 连接到实时网站以进行数据库调用

c++ - 如何在 Windows Visual Studio 8.0 中使用 SGI Ropes?

python - 带有 boost/dll 的 pybind - 双重使用 DLL?

c - 在 MSVC 2010 项目中添加 .dll 文件的正确方法是什么