我有一个包含遗留 C 代码的 dll,我通过 JNI 调用这个 dll,但有时 C 代码崩溃并导致 JVM 终止。有没有办法避免 JVM 崩溃?我可以处理 JNI 故障并让 JVM 存活吗? :)
最佳答案
正如 Timo 所说,您别无选择,只能使 JNI 代码健壮。如果您不能这样做(例如,如果您没有源代码),那么也许您可以寻求进程间解决方案。将 JNI 代码放在一个单独的服务器进程中,进行 RMI 或 HTTP 调用。如果它崩溃了,请重新启动“服务器”,但主 JVM 仍然存在。显然会有性能开销和复杂性增加,但也许您可以负担得起?
关于java - 处理 JNI 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1952277/