我有一个包含遗留C代码的dll,我通过JNI调用了这个dll,但有时C代码崩溃并导致JVM终止。有没有办法避免JVM崩溃?我可以处理JNI故障并让JVM生存吗? :)处理JNI崩溃
Q
处理JNI崩溃
10
A
回答
3
如果是C代码崩溃,那么阻止它将JVM加入它的唯一方法就是防止C代码崩溃。这是编写JNI代码时遇到的主要危险/问题之一,因为与使用纯Java编写的东西相比,Java和C的组合更脆弱。
4
正如Timo所说,你没有真正的选择,只能使JNI代码健壮。如果你不能这样做(例如,如果你没有源代码),那么也许你可以选择一个进程间解决方案。将JNI代码放在一个单独的服务器进程中,跨RMI或HTTP调用。如果崩溃,请重新启动“服务器”,但主JVM仍然存在。很明显,性能开销会增加,复杂性也会增加,但也许你可以负担得起?
相关问题
- 1. JNI崩溃:S
- 2. Android jni GetMethID崩溃
- 3. 如何从jni处理对AudioTrack的呼叫而不会崩溃?
- 4. 的Android ClassLoader.loadClass JNI崩溃
- 5. JNI - 应用程序崩溃
- 6. JVM外的JNI崩溃 - EXCEPTION_ACCESS_VIOLATION
- 7. 加载jni时jre崩溃
- 8. JNI NewStringUTF崩溃android系统
- 9. 调试JNI热点崩溃
- 10. 如何处理硒崩溃
- 11. JavaScript事件处理崩溃
- 12. 当调用CallVoidMethod时JNI崩溃
- 13. jni代码中的FindClass崩溃JVM
- 14. JNI本地方法导致VM崩溃
- 15. jni-wrapper在Windows上崩溃JVM
- 16. JVM崩溃attachCurrentThread JNI回调调用
- 17. 当访问DLL时JNI崩溃
- 18. 什么导致我的c + + JNI崩溃?
- 19. 事件处理后wxpython窗口崩溃
- 20. android - 处理崩溃的回调函数
- 21. PageFunction没有被处理导致崩溃
- 22. Google Vision API:处理本机崩溃
- 23. Multipeer Connectivity IOS:didFinishReceivingResourceWithName错误处理(崩溃)
- 24. Android:处理图像时AsyncTask崩溃
- 25. 如何使用Robotium处理崩溃
- 26. 处理信号后Perl进程崩溃
- 27. 崩溃,同时保留Excel中处理
- 28. Android - 处理应用程序崩溃
- 29. 崩溃处理程序打印回溯
- 30. 我有批处理文件崩溃