正如Timo所说,你没有其他选择,只能使JNI代码更加健壮。如果你无法做到这一点(例如如果你没有源代码),那么也许你可以选择跨进程解决方案。将JNI代码放在单独的服务器进程中,通过RMI或HTTP调用它。如果它崩溃了,重新启动“服务器”,但主JVM仍然存在。显然会有性能开销和复杂度增加,但也许你承受得起这个代价?