Scpsolver jar的代码示例

时间:2015-07-13 17:28:50

标签: java jar

我试图将scpsolver和gplk jar文件用于类项目,但给出的示例给出了一个空指针错误。

LinearProgram lp = new LinearProgram(new double[]{5.0,10.0}); 
lp.addConstraint(new LinearBiggerThanEqualsConstraint(new double[]{3.0,1.0}, 8.0, "c1")); 
lp.addConstraint(new LinearBiggerThanEqualsConstraint(new double[]{0.0,4.0}, 4.0, "c2")); 
lp.addConstraint(new LinearSmallerThanEqualsConstraint(new double[]{2.0,0.0}, 2.0, "c3")); 
lp.setMinProblem(true); 
LinearProgramSolver solver  = SolverFactory.newDefault(); 
double[] sol = solver.solve(lp);

我曾尝试使用scpsolver的google示例,但一直无法找到。任何人都可以为scpsolver发布一个工作示例吗?

2 个答案:

答案 0 :(得分:2)

如果您的例外是针对LinearProgramSolver(我有同样的问题),它的newDefault()可能无法自动找到基础GLPKSolverPack.jar。请检查以下

  1. 确保您在类路径中列出了GLPKSolverPack.jar。我猜你已经检查了这个。

  2. 确保您为项目使用32位JDK版本。 64位JDK存在一个已知问题,即SCP解算器无法根据其网页检测底层库。

  3.   

    SCPSolver WebSource:    如果在Windows下出现错误" DEBUG:找不到所需的库:xxxxxxxx_x64":我们目前无法访问64位Windows机器,因此我们无法提供64位库解算器包。解决方案:如果安装了32位x86 JDK,您仍然可以在Windows下使用SCPSolver!

    这是我的问题,只要我将项目指向它工作的32位JDK

答案 1 :(得分:-1)

空指针异常意味着您有一个变量,其值被赋值为null,程序正在尝试使用其值。 例如:

Integer myInteger = null;
int n = myInteger.intValue();

因此,如果您尝试获取空值,请检查您的代码。