【问题标题】:Exception in thread "main" java.lang.UnsatisfiedLinkError: no lpsolve55j in java.library.path线程“主”java.lang.UnsatisfiedLinkError 中的异常:java.library.path 中没有 lpsolve55j
【发布时间】:2015-08-30 15:22:43
【问题描述】:

在.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

【问题讨论】:

    标签: java unsatisfiedlinkerror lpsolve


    【解决方案1】:

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

    1. 平台/操作系统特定二进制如下所列,您应该将它们保存在相应的库路径中或导出相应的环境特定属性

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

    在您的情况下,您似乎都已在第 2 步中设置好,但您缺少第 1 步。对于第 1 步,您可以在 java.library.path 中包含您所在的路径,而不是环境变量已经过去了。我在下面给你举了一个例子。

    $ 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 演示

    【讨论】:

    • 感谢@santhosh-gandhe 提供了非常有帮助的答案。您能否编辑您的答案以解释步骤 1 中文件 libsolve55.so 的来源?提前致谢
    • 您可以在 SourceForge 中找到这些文件并下载它们。 sourceforge.net/projects/lpsolve
    【解决方案2】:

    设置 java.library 路径。使用 Eclipse

    1.在Package Explorer区域中选择您的项目并右键单击它。

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

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

    4.然后,展开 JRE System library 选项并选择 Native library location。

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

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

    7.关闭窗口。

    【讨论】:

      猜你喜欢
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多