Những loại lỗi? Nếu đó là một ngoại lệ, bạn có thể bắt được nó không?
Một cách tiếp cận khác là đặt chính xác một lớp chịu trách nhiệm tải thư viện. Bạn có thể tải phần thư viện của trình khởi tạo tĩnh của lớp và sau đó tải lớp == tải thư viện.
EDIT: các javadocs for Runtime.loadLibrary()
(mà System.loadLibrary
cuộc gọi) thậm chí gợi ý cách tiếp cận initializer tĩnh:
Nếu phương pháp bản địa đang được sử dụng trong việc thực hiện của một lớp, một chiến lược tiêu chuẩn là để đưa mẹ đẻ mã trong một tập tin thư viện (gọi nó là LibFile) và sau đó đặt một tĩnh initializer:
static { System.loadLibrary("LibFile"); }
trong khai báo lớp. Khi lớp được tải và được khởi tạo, mã gốc cần thiết triển khai cho các phương thức gốc sau đó sẽ được tải.
Các javadocs cũng nói:
Nếu phương pháp này được gọi là nhiều hơn một lần với tên cùng một thư viện, các cuộc gọi thứ hai và tiếp theo sẽ được bỏ qua.
điều này khiến tôi càng tò mò hơn về lỗi bạn đang gặp phải.
Nguồn
2009-07-16 18:30:55
Tôi đoán anh nhận được một UnsatisfiedLinkError vì hai classloaders khác nhau cố gắng tải các thư viện bản địa cùng – jitter
Một số liên kết có liên quan đến vấn đề http://bugs.sun.com/bugdatabase/view_bug.do?bug_id= 4750956 và http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5075039 – jitter
yeah jitter là đúng, đó là lỗi tôi nhận được, nhờ liên kết jitter –