В настоящее время мы используем программный продукт, который выпускает файлы dll и lib для своего программного обеспечения (они не дают нам исходный код).Их файлы были написаны на C. Мы пишем оболочку dll для их программного обеспечения на C ++ (используя VS2010) и экспортируем все dll в проект java.Затем мы загружаем все библиотеки DLL в Java с помощью вызовов System.loadLibrary ().Все работает, как и ожидалось.
Проблема в том, что компания-разработчик выпустит «более новую» версию программного обеспечения (Ex v1.0, v2.5 и т. Д.), А имена их dll идентичны дажехотя версии разные.Таким образом, мы сталкиваемся с ошибками в Java, используя вызовы System.loadLibrary (), потому что он не знает, на какой из них ссылаться (так как все они называются одинаково).
Я мог бы видеть, явно устанавливая аргументы VM для указанияв определенную папку lib, которая содержит нужную нам версию (например: -Djava.library.path = lib \ v1_0).Проблема в том, что нам нужно запускать ВСЕ версии во время одного и того же Java-приложения (например, v1.0, v2.5 и т. Д.).
Поэтому я лучше всего пытаюсь собрать и объединить dll,мы выпускаем только 1 dll для каждой версии (содержащей нашу dll-оболочку и все их dll или библиотеки), и эта dll будет иметь уникальное имя.Кто-нибудь знает, как это сделать, или есть лучший способ, который они могут предложить?
Спасибо!