Можно ли загружать разные версии одной и той же DLL в Java?

У меня есть библиотека JNI, которая взаимодействует с набором сторонних библиотек, и в системе может быть несколько версий сторонней библиотеки. Для каждой версии сторонней библиотеки мне нужно перекомпилировать код JNI по соображениям сопоставимости. Прямо сейчас я занимаюсь этим, загружая DLL с определенным именем, и если версия изменяется, я меняю имена библиотек DLL интерфейса JNI так, чтобы правильная версия для версии имела правильное имя для загрузки.

I ' Я хотел бы иметь возможность динамически загружать dll, в зависимости от того, какую версию пользователь хочет использовать. Что произойдет, если я вызову System.loadLibrary дважды для библиотек DLL с разными именами, но с одинаковыми сигнатурами методов?

System.loadLibrary("JNIv1");
// Same code compiled against a different third party version
System.loadLibrary("JNIv2");

Мне нужно использовать только одну из версий за раз, так что ничего страшного, если старая версия больше не доступна.

] Можно ли загрузить две разные версии DLL с одинаковыми сигнатурами методов без перезапуска программы?

8
задан TwentyMiles 9 September 2010 в 16:11
поделиться