Подтвердить что ты не робот

Что такое LD_LIBRARY_PATH и как его использовать?

Я участвую в разработке Java-проекта, который использует некоторые компоненты С++, поэтому мне нужен Jacob.dll. (в Windows 7)

Я продолжаю получать java.lang.UnsatisfiedLinkError: no JacobDB in java.library.path независимо от того, где я помещаю Jacob.dll....

Я искал возможные решения, и тот, который я еще не пробовал, устанавливает переменную LD_LIBRARY_PATH, указывая на файл .dll.

У меня мало опыта, и я не знаком с тем, что должно быть значением и использованием этой переменной - можете ли вы мне помочь?

4b9b3361

Ответ 1

Обычно вы должны установить java.library.path в командной строке JVM:

java -Djava.library.path=/path/to/my/dll -cp /my/classpath/goes/here MainClass

Ответ 2

LD_LIBRARY_PATH - это предопределенная переменная окружения в Linux/Unix, которая задает путь, на который должен ссылаться компоновщик, при связывании динамических библиотек/разделяемых библиотек.

LD_LIBRARY_PATH содержит список путей, разделенных двоеточиями, и компоновщик дает приоритет этим путям по стандартным путям библиотеки /lib и /usr/lib. Стандартные пути будут по-прежнему выполняться, но только после исчерпания списка путей в LD_LIBRARY_PATH.

Лучший способ использовать LD_LIBRARY_PATH - установить его в командной строке или script непосредственно перед выполнением программы. Таким образом, новый LD_LIBRARY_PATH изолирован от остальной части вашей системы.

Пример использования:

$ export LD_LIBRARY_PATH="/list/of/library/paths:/another/path"
$ ./program

Поскольку вы говорите о .dll, вы находитесь в системе Windows, а .dll должен быть помещен по пути, который компоновщик выполняет поиск по времени ссылки, в окнах этот путь задается переменной окружения PATH, So добавьте, что .dll в PATH, и он должен работать нормально.

Ответ 3

LD_LIBRARY_PATH является специфичным для Linux и представляет собой переменную среды, указывающую на каталоги, в которых динамический загрузчик должен искать разделяемые библиотеки.

Попробуйте добавить каталог, в котором ваша .dll находится в переменной PATH. Windows будет автоматически искать в списке каталогов эту переменную среды. LD_LIBRARY_PATH, вероятно, не решит проблему (если JVM не использует ее - я об этом не знаю).

Ответ 4

Ну, сообщение об ошибке сообщает вам, что делать: добавьте путь, где Jacob.dll находится в java.library.path. Вы можете сделать это в командной строке следующим образом:

java -Djava.library.path="dlls" ...

(предполагая, что Jacob.dll находится в папке "dlls" )

Также см. java.lang.UnsatisfiedLinkError no *****. dll в java.library.path