线程“main”中的异常java.lang.UnsatisfiedLinkError:java.library.path中没有lpsolve55j

时间:2015-06-15 07:53:23

标签: java unsatisfiedlinkerror lpsolve

.bashrc中的

写道:

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 个答案:

答案 0 :(得分:2)

要运行lpsolver,您需要两件事。

  1. 平台/ os特定二进制文件如下所示,您应将它们保存在相应的库路径中或导出相应的环境特定属性

    • 用于Windows的libsolve55.dll - 要么将这些文件复制到system32,要么将此路径设置为LD_LIBRARY_PATH环境变量
    • 用于linux的libsolve55.so - 您应该将这些文件复制到/ usr / local / lib或将此路径设置为LD_LIBRARY_PATH环境变量
    • 用于mac的libsolve55.dylib - 您应该将这些文件复制到/ usr / local / lib或将此路径设置为LD_LIBRARY_PATH环境变量DYLD_FALLBACK_LIBRARY_PATH
  2. 用于调用上述二进制文件中存在的lp_solver方法的特定于语言的包装器。对于Java,您需要liblpsolve55j.jnilib和lpsolve5j.o文件。这些位置应该添加到java.library.path中,或者将它们添加到上面特定于平台的环境变量中。

  3. 在您的情况下,似乎您已在步骤2中设置,但您缺少步骤1.对于步骤1,您可以在java.library.path中包含您的路径而不是环境变量alreay传球。我在下面举了一个例子。

      

    $ 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

答案 1 :(得分:0)

设置java.library路径。使用Eclipse

1。在Package Explorer区域中选择您的项目,然后右键单击它。

2。选择“构建路径”→“配置构建路径...”选项。

3。在出现的窗口中,选择“库”选项卡。

4。然后,展开“ JRE系统库”选项并选择“本机”库位置。

5。单击右侧面板上的“编辑...”按钮。

6。找到所需的库,然后单击“确定”。

7。关闭窗口。