Tôi có một dll chứa mã C cũ, tôi gọi dll này qua JNI, nhưng đôi khi mã C bị lỗi và khiến JVM chấm dứt. Có cách nào để tránh va chạm JVM không? Tôi có thể xử lý lỗi JNI và để JVM tồn tại không? :)Xử lý sự cố JNI
Trả lời
Nếu đó là mã C bị lỗi, thì cách duy nhất để ngăn không cho nó lấy JVM với nó là để ngăn chặn mã C bị lỗi ngay từ đầu. Đó là một trong những mối nguy hiểm chính mà bạn nhận được khi viết mã JNI vì nó làm cho sự kết hợp của Java và C phần nào mỏng manh hơn so với một cái gì đó được viết bằng Java thuần túy.
Như Timo đã nói, bạn không có cách thay thế thực sự nào khác ngoài việc làm cho mã JNI mạnh mẽ hơn. Nếu bạn không thể làm điều đó (ví dụ nếu bạn không có nguồn) thì có lẽ bạn có thể đi cho một giải pháp liên tiến trình. Đặt mã JNI trong một quy trình máy chủ riêng biệt, thực hiện các cuộc gọi RMI hoặc HTTP qua. Nếu nó bị treo, hãy khởi động lại "máy chủ" nhưng JVM chính vẫn tồn tại. Rõ ràng là có một chi phí thực hiện, và sự gia tăng phức tạp, nhưng có lẽ bạn có thể đủ khả năng này?
- 1. Xử lý sự cố "javax/xml/XMLConstants.class"
- 2. Xử lý Sự cố trong Twisted
- 3. Xử lý sự cố hệ thống.io.fileloadexception
- 4. Trình xử lý sự cố đa nền tảng
- 5. Android - Xử lý sự cố đã xảy ra
- 6. Các sự cố khi xử lý các thay đổi hướng
- 7. Ghi đè trình xử lý sự cố xác thực - Symfony2
- 8. Sự cố khi hủy Trình quản lý cảnh báo - Đang chờ xử lý
- 9. Không có đầu ra in từ đa xử lý con. Xử lý trừ khi chương trình gặp sự cố
- 10. Thêm xử lý sự kiện riêng trước xử lý sự kiện khác
- 11. xử lý sự kiện trước Page_Load
- 12. jQuery Plugin: Xử lý sự kiện
- 13. Cách xử lý sự cố hình ảnh 9-bit trong android
- 14. Xử lý sự cố "T_ECHO không mong đợi" trong tuyên bố nhà điều hành ba năm
- 15. Xử lý điểm cố định: sự khác nhau giữa uint16_t và uint_fast16_t là gì?
- 16. Giải quyết sự cố "Không thể truy cập đối tượng được xử lý". ngoại lệ
- 17. Cách khắc phục sự cố Xử lý rò rỉ trong C# Dịch vụ Windows
- 18. Cảnh báo và sự cố bộ nhớ: cách xử lý nó
- 19. Công cụ để xử lý sự cố tham nhũng trong C++
- 20. Xử lý sự cố trả về vận chuyển Base64 từ Java và gửi tới trình duyệt
- 21. Khi nào cần xử lý sự cố onbound của XMLHttpRequest lửa
- 22. Có thể sử dụng Z3 để xử lý trước sự cố không?
- 23. LÀM THẾ NÀO BẠN xử lý các sự cố trong ứng dụng iPhone của mình?
- 24. matplotlib: cố tình chặn thực thi mã đang chờ xử lý sự kiện
- 25. Xử lý sự kiện với Jython & Swing
- 26. IE8 onclick xử lý sự kiện
- 27. Sự cố khi gọi phương thức Java từ chủ đề gốc bằng JNI (C++)
- 28. Xử lý tăng sự kiện trong Java
- 29. Delphi và ngăn sự kiện xử lý
- 30. Xử lý DataGridHyperlinkColumn Nhấp vào Sự kiện