Tôi có thư viện JNI tương tác với một nhóm thư viện của bên thứ ba và có thể có nhiều phiên bản của thư viện của bên thứ ba trên hệ thống. Đối với mỗi phiên bản của thư viện của bên thứ ba, tôi phải biên dịch lại mã JNI vì các lý do so sánh. Ngay bây giờ tôi đối phó với điều này bằng cách tải một DLL với một tên cụ thể, và nếu phiên bản thay đổi tôi thay đổi tên của giao diện JNI DLLs để một trong những chính xác cho phiên bản có tên đúng để có được nạp.Có thể tải các phiên bản khác nhau của cùng một DLL trong Java không?
Tôi muốn có thể tự động tải tệp dll, dựa trên phiên bản người dùng muốn sử dụng. Điều gì sẽ xảy ra nếu tôi gọi System.loadLibrary hai lần trên các tệp DLL có tên khác nhau nhưng có cùng chữ ký phương thức?
System.loadLibrary("JNIv1");
// Same code compiled against a different third party version
System.loadLibrary("JNIv2");
Tôi chỉ cần sử dụng một trong các phiên bản tại một thời điểm, vì vậy sẽ ổn nếu phiên bản cũ không còn truy cập được nữa.
Có thể tải hai phiên bản khác nhau của một DLL có cùng chữ ký phương thức mà không cần khởi động lại chương trình không?