在.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
最佳答案
要运行lpsolver,您需要做两件事。
特定于平台/操作系统的二进制文件,如下所示,您应将它们保留在相应的库路径中或导出相应的环境特定的属性
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
特定于语言的包装程序,用于调用上述二进制文件中存在的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演示