Bình bên thứ ba mà tôi sử dụng đang cố tải một thư viện gốc bằng System.loadLibrary. Tôi nghĩ rằng những gì đang xảy ra là một trong những thư viện được tải có một sự phụ thuộc vào một thư viện bản địa khác. Chỉ -Djava.library.path không hoạt động đúng trong trường hợp này. Các hướng dẫn từ trang web của ứng dụng được đặt các dll trong thư mục jre/bin, nhưng tôi nghĩ rằng đây là một ý tưởng thực sự tồi (đặc biệt là khi cố gắng triển khai đến các trang web của khách hàng).Java System.loadLibrary phụ thuộc
Vì vậy, câu hỏi này thực sự là 2 phần.
Có ý nghĩa gì nếu một lib bản địa cố gắng tải một lib gốc khác -Djava.library.path không hoạt động?
Có giải pháp tốt để giải quyết vấn đề này không? Tôi đoán tôi có thể gọi một cách rõ ràng System.loadLibrary trên tất cả các dlls (tôi thậm chí không chắc chắn nếu điều này sẽ làm việc), nhưng tôi sẽ cần phải chắc chắn để gọi cho họ theo thứ tự đúng nếu không tôi sẽ có cùng một vấn đề.
EDIT: Tôi nghĩ rằng điều này làm cho cảm giác rằng nó đang xảy ra, và là giải pháp tốt nhất mà tôi đã đọc cho đến nay là sử dụng phụ thuộc walker để con nó ra và sau đó tải chúng theo thứ tự ngược lại ... nhưng tôi 'm mở để gợi ý tốt hơn ...
cảm ơn, Jeff
Tôi đã thử tải theo cách ngược lại và nó hoạt động, vì vậy có thể tôi sẽ sử dụng cách tiếp cận đó, trừ khi có một số giải pháp ma thuật mà tôi đang thiếu. –
Đó có lẽ là những gì tôi sẽ làm là tốt, ngoài việc có thể gửi một lỗi cho bên thứ ba. Nếu bạn đang làm phần mềm đa nền tảng, các thư viện được liên kết động có thể khác nhau giữa các nền tảng. Chúc may mắn! –