下载地址:https://sourceforge.net/projects/lpsolve/files/lpsolve/
可以根据相应的版本下载不同的压缩包。
准备好以下两个(根据自己的版本来,32位或者64位):
step1
将lp_solve_5.5.2.5_dev_win32文件夹中的lpsolve55.dll复制到C:\Windows\System32文件下
(这里的win32和win64尤为重要,我记得我的jdk是64位的,但是用win64在运行时一直提示找不到jar包,明明都加进去了,所以重新又换成32位的了)
step2
将lp_solve_5.5.2.5_java中lp_solve_5.5_java\lib\win64文件夹下的lpsolve55j.dll拷贝到C:\Windows\System32文件下
(这里的win32和win64也一样,所以重新又换成lp_solve_5.5_java\lib\win32文件夹下的lpsolve55j.dll)
step3 在eclipse项目中配置jar包
在想要使用lpsolve的项目里,右击选择properties,选择add Externale JARs,
选中:
保存。
本来以为这样就成功了,但是测试一直说找不到相应的包,也不知道是不是32位和64位的原因,根据网上的方法(https://blog.csdn.net/oney139/article/details/49181489?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-9-49181489.nonecase&utm_term=lpsolve&spm=1000.2123.3001.4430),又重新添加了几步,也不知道到底哪个有用哪个没用了,都列上吧,最后成了就行。
补充步骤1:step1和step2里复制的两个dll,再复制到jdk的bin下面(我现在用的都是32位的)。
补充步骤2:
在eclipse里面,右击选择properties,选择Source,点击这个Native library location,右边选择edit,把包含32位dll的那个目录选进去。
测试:
参考文档:http://web.mit.edu/lpsolve/doc/
在左边选择对应的Java
用官方给的小例子做个测试:
import lpsolve.*;
public class Demo {
public static void main(String[] args) {
try {
// Create a problem with 4 variables and 0 constraints
LpSolve solver = LpSolve.makeLp(0, 4);
// add constraints
solver.strAddConstraint("3 2 2 1", LpSolve.LE, 4);
solver.strAddConstraint("0 4 3 1", LpSolve.GE, 3);
// set objective function
solver.strSetObjFn("2 3 -2 3");
// solve the problem
solver.solve();
// print solution
System.out.println("Value of objective function: " + solver.getObjective());
double[] var = solver.getPtrVariables();
for (int i = 0; i < var.length; i++) {
System.out.println("Value of var[" + i + "] = " + var[i]);
}
// delete the problem and free memory
solver.deleteLp();
}
catch (LpSolveException e) {
e.printStackTrace();
}
}
}
结果部分截图如下:
总算成功了。
感谢“数据魔术师”这个公众号,真的很好用,写得超用心,还有文中列出来的链接的作者们。呼呼,可以继续往下做了!