Сторонняя банка, которую я использую, пытается загрузить собственную библиотеку, используя System.loadLibrary. Я думаю, что происходит то, что одна из загружаемых библиотек зависит от другой родной библиотеки. Pointing -Djava.library.path не работает должным образом в этом случае. Инструкции с сайта приложения помещают DLL в каталог jre/bin, но я думаю, что это действительно плохая идея (особенно при попытке развернуть на клиентские сайты).Зависимости Java System.loadLibrary
Итак, этот вопрос действительно 2 части.
Имеет ли смысл, что если родной lib пытается загрузить другой родной lib, что -Djava.library.path не работает?
Есть ли хорошее решение для решения этой проблемы? Я предполагаю, что я мог бы явным образом вызвать System.loadLibrary на всех DLL (я даже не уверен, что это сработает), но мне нужно будет обязательно вызвать их в правильном порядке, иначе у меня будет такая же проблема.
EDIT: Я думаю, что это имеет смысл, что это происходит, и самое лучшее решение, которое я читал до сих пор использовать зависимость ходок, чтобы понять его, а затем загрузить их в обратном порядке ... но я «м открыты для лучшего предложения ...
спасибо, Джеффа
Я попробовал загрузку в обратном порядке, и это действительно сработает, поэтому, возможно, я буду использовать этот подход, если не будет какого-то магического решения, которого у меня нет. –
Это, вероятно, то, что я бы сделал, а также, возможно, представив дефект третьей стороне. Если вы используете кросс-платформенное программное обеспечение, динамически связанные библиотеки могут отличаться между платформами. Удачи! –