Ubuntu上安装lp_solve库(java)

记录一次在Ubuntu上安装lp_solve库(java)

前言

lp_solve是一个混合整数线性规划求解器,由C语言编写的开源软件,可以求解纯线性、(混合)整数/二值、半连续和特殊有序集模型。并且经过实际验证,有极高的求解效率。

一. 安装:

1.首先在官网下载所需要的包,放到/usr/local/下并解压

https://sourceforge.net/projects/lpsolve/files/lpsolve/5.5.2.11/

i. lp_solve_5.5.2.11_java.zip
ii. lp_solve_5.5.2.11_source.tar.gz

部署需要三个文件:

liblpsolve55.so  #解压后需要编译才能获得

liblpsolve55j.so #解压后在/usr/local/lp_solve_5.5_java/lib/ux64/下

lpsolve55j.jar   #解压后在/usr/local/lp_solve_5.5_java/lib/下

2.获取liblpsolve55.so

cd /usr/local/lp_solve_5.5/lpsolve55 && bash ./ccc

编译后会生成个bin目录, bin/ux64/下即可获得liblpsolve55.so

3.将liblpsolve55.so liblpsolve55j.so 放到/usr/local/lib下

cp liblpsolve55.so liblpsolve55j.so /usr/local/lib 

4.安装gcc 并将 上面三个文件拷贝到jdk目录下


#gcc
apt update && apt-get install -y gcc && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone 

#把这两个so文件放到jdk目录下
cp /usr/local/lib/liblpsolve55.so /usr/java/jdk1.8.0_201/ && cp /usr/local/lib/liblpsolve55j.so /usr/java/jdk1.8.0_201/

#把lpsolve55j.jar放到jdk的jre下
cp /usr/local/lp_solve_5.5_java/lib/lpsolve55j.jar /usr/java/jdk1.8.0_201/lib/

cp /usr/local/lp_solve_5.5_java/lib/lpsolve55j.jar /usr/java/jdk1.8.0_201/jre/lib/

5. 编译库文件

chmod -R 777 /usr/local/lp_solve_5.5/* 
cd /usr/local/lp_solve_5.5/lp_solve && sh ./ccc 
cd /usr/local/lp_solve_5.5/lpsolve55 && sh ./ccc 

完成后执行,加载用户库文件

ldconfig

可以ldconfig -v |head 看到liblpsolve55.so和liblpsolve55j.so已经成功加载。

二. 调用测试

java调用前在启动jar包的时候声明一下$LD_LIBRARY_PATH,这个可以在脚本中声明也可以在/etc/profile里添加上声明,目的是加载第三方用户库去指定的这个目录下面去找。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/java/jdk1.8.0_201/

在jar包启动的时候添加启动参数

-Djava.library.path=$LD_LIBRARY_PATH

完整的启动命令为:

nohup java -jar -Djava.library.path=$LD_LIBRARY_PATH -Dspring.profiles.active=${RUN_ENV} $JAR_NAME >/dev/null 2>&1 &

启动后,通过调用测试接口查看状态。

你可能感兴趣的:(Ubuntu上安装lp_solve库(java))