gpt4 book ai didi

java - 从 C++ 启动时正确关闭 JVM

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:47:49 24 4
gpt4 key购买 nike

我正在通过 JNI 从 C++ 代码启动 JVM。我有一个问题,当我刚刚退出我的 C++ 进程时,JVM 的一些关闭 Hook 似乎没有运行,因此一些临时资源仍然存在,在我的特殊情况下,这会阻止我下次打开 C++ 进程时启动 JVM。我尝试了 jvm->DestroyJavaVM(),但在关闭所有进程窗口后,我仍然可以看到进程正在运行。确保 JVM 在通过 JNI 启动时正确关闭的最佳等待时间是多少?

谢谢!

最佳答案

首先,jvm->DestroyJavaVM() 直到所有非守护进程 jvm 线程都停止后才会返回,它只是等待它们停止,所以你应该停止它们java.

其次,System.exit会导致整个进程关闭。

所以你真正需要的是检查你的 java 代码哪个线程还没有停止,例如 ui 框架的后台消息循环线程,如 gwtswing.

关于java - 从 C++ 启动时正确关闭 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29245520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com