- 締切済み
Javaでのlpsolveの利用方法を教えてください。
Javaでのlpsolveの利用方法を教えてください。 JavaプログラムのIPtest.javaが実行できません。 どのようにしたら、JavaのAPIであるlpsolveを利用できるのか教えて頂けませんか? IPtest.javaのソース。 import lpsolve.*; public class IPtest { public static void main(String[] args) { try { /* 変数5 個,制約0 個の問題を作成 */ LpSolve solver = LpSolve.makeLp(0, 5); /* 1つ目の制約を追加 */ solver.strAddConstraint("8 2 6 4 5", LpSolve.LE, 20); /* 変数1 から5 を0-1 変数に設定 */ solver.setBinary(1, true); solver.setBinary(2, true); solver.setBinary(3, true); solver.setBinary(4, true); solver.setBinary(5, true); /* 目的関数の係数を設定 */ solver.strSetObjFn("5 3 7 8 6"); /* 目的を最大化に設定 */ solver.setMaxim(); /* 求解 */ solver.solve(); /* 解の表示 */ System.out.println("OptVal = " + solver.getObjective()); double[] var = solver.getPtrVariables(); for (int i = 0; i < var.length; i++) { System.out.println("var[" + i + "] = " + var[i]); } /* 後始末(問題の消去とメモリの解放) */ solver.deleteLp(); } catch (LpSolveException e) { e.printStackTrace(); } } } OS : Windows Vista 一応、環境変数のCLASSPATHをC:\lp_example\lpsolve55j.jarに設定したら、 コンパイルは出来て、実行が出来ない状態です。 実行すると、 Exception in thread "main" java.lang.UnsatisfiedLinkError: no lpsolve55j in java .library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682) at java.lang.Runtime.loadLibrary0(Runtime.java:823) at java.lang.System.loadLibrary(System.java:1030) at lpsolve.LpSolve.<clinit>(LpSolve.java:275) at IPtest.main(IPtest.java:8) このように出てしまいます。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- salsberry
- ベストアンサー率69% (495/711)
lpsolve.LpSolveクラスが使用するJNIライブラリを見つけられないということです。 lpsolve55j.jarと一緒にlpsolve55j.dllというファイルがあったのではありませんか? そのDLLファイルのあるディレクトリをWindowsの環境変数PATHに追加してください。 lpsolve55j.dllが存在しなくて、C/C++のソースコードだけが配布されていたのであれば、自分でコンパイルしてDLLファイルを作る必要があるのかもしれません。