Ошибка Java - не удается найти библиотеку в java.library.path?

Я получаю сообщение об ошибке, подобное этому:

Библиотека имя библиотеки.dll не может быть загружена Windows. Убедитесь, что библиотека находится в вашей переменной среды Path. Исключение в потоке "main" java.lang.UnsatifiedLinkError: нет имени библиотеки в java.library.path.

Эта ошибка от меня пытается запустить файл JAR на Windows XP через cmd. Мне интересно, где именно находится java.library.path? Я уже добавил C:\Program Files\Java\jdk1.6.0_26 в мою PATH, но он все равно выдает ошибку. Как бы вы пошли об отладке этого?

Благодарю.

2 ответа

Решение

Вы можете просто передать java.library.path как системное свойство, как показано ниже:

java -Djava.library.path=<path_to_dll> <main_class>

Сначала вам нужно выяснить, где находится libraryname.dll, и добавить его выше в "path_to_dll".

Ошибка в основном говорит, что он не может найти ваши нативные библиотеки. Java пытается найти вашу библиотеку, просматривая свойство java.library.path

Это системная среда, в которой вы нуждаетесь, поэтому Java может найти ваши собственные библиотеки при запуске приложения. Несколько способов сделать это:

  • Используйте java -Djava.library.path=[путь к вашей библиотеке] при запуске вашей программы
  • Из кода вы также можете сделать.

    
    System.setProperty( "java.library.path", "/path/to/libs" );
    
  • Настройте его из вашей IDE. Пример для Eclipse можно найти в этом вопросе SO Как установить java.library.path из eclipse

РЕДАКТИРОВАТЬ: Хороший комментарий ниже указал, что #2 не будет работать на 100%, потому что вы не могли бы установить это до вызова getProperty(). Пропустил этот момент и спасибо за указание на это.

Другие вопросы по тегам