2015-06-15 4 views
2

в .bashrc написано:Исключение в потоке "основного" java.lang.UnsatisfiedLinkError: нет lpsolve55j в java.library.path

PYTHONPATH="${PYTHONPATH}:$Home/local/lib/python2.7/site-packages/" 
export PYTHONPATH 

LD_LIBRARY_PATH="$Home/local/lib/" 
export LD_LIBRARY_PATH 

CLASSPATH="/home/stud/qe09kyvu/local/lib/liblpsolve55j.so" 
export CLASSPATH 

Когда я пытаюсь запустить эту команду:

java -cp .:../lib/lpsolve55j.jar -Djava.library.path=../liblpsolve55j.so Demo 

я получаю следующее сообщение об ошибке:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lpsolve55j in java.library.path 

Но я не понимаю эту ошибку, потому что в .. есть liblpsolve55j.so

ответ

2

Для запуска lpsolver вам нужны две вещи.

  1. Платформа/ОС конкретных двоичная, как перечислены ниже, и вы должны держать их в соответствующей библиотеке пути или экспорта соответствующая окружающая среда специфическое свойство

    • libsolve55.dll для окон - либо вы должны скопировать эти файлы system32 или установить этот путь к переменной окружения LD_LIBRARY_PATH
    • libsolve55.so для Linux - вы должны скопировать эти файлы в/USR/местные/Библиотека или установить этот путь к переменной окружения LD_LIBRARY_PATH
    • libsolve55.dy Lib для макинтош - вы должны скопировать эти файлы в/USR/местные/Библиотека или набор этот путь к переменной окружения LD_LIBRARY_PATH DYLD_FALLBACK_LIBRARY_PATH
  2. языка конкретной оболочки для вызова метода lp_solver присутствующую в вышеуказанном бинарном файле. Для Java вам нужен файл liblpsolve55j.jnilib и lpsolve5j.o. Либо их местоположение должно быть добавлено в java.library.path или добавить их в указанную выше переменную среды для конкретной платформы.

В вашем случае, кажется, что вы все настроены на шаге 2, но вам не хватает шага 1. Для шага 1, вместо переменной окружения, вы можете указать путь в java.library. путь, по которому вы перешли. Я привел вам пример ниже.

$ java -cp ./Demo.jar:../lib/lpsolve55j.jar -Djava.library.path=/Users/santhoshgandhe/mac_lpsolver/lp_solve_5.5/lpsolve55/bin/osx64:/Users/santhoshgandhe/mac_lpsolver/lp_solve_5.5_java/lib/mac Demo

+0

Спасибо @ santhosh-gandhe за очень полезный ответ. Не могли бы вы отредактировать свой ответ, чтобы объяснить, откуда взялся файл libsolve55.so на шаге 1? Заранее спасибо – kleindotuk

+0

Вы можете найти эти файлы в SourceForge и загрузить их. https://sourceforge.net/projects/lpsolve/ –