6

当我尝试使用 LPSolve for Java(mavenized 版本,http://code.google.com/p/lpsolve-java/source/checkout)时,出现以下错误:

java.lang.UnsatisfiedLinkError: C:\Windows\System32\lpsolve55j.dll: Can't find dependent libraries
     at java.lang.ClassLoader$NativeLibrary.load(Native Method)
     at java.lang.ClassLoader.loadLibrary0(Unknown Source)
     at java.lang.ClassLoader.loadLibrary(Unknown Source)
     at java.lang.Runtime.loadLibrary0(Unknown Source)
     at java.lang.System.loadLibrary(Unknown Source)
     at lpsolve.LpSolve.<clinit>(LpSolve.java:274)

一世

  • 将 lpsolve55j.dll 放入 Windows\System32 和
  • 将目录 C:\Program Files\LPSolve IDE 添加到 PATH 环境变量中。

该错误发生在eclipse(测试用例)以及“mvn test”执行期间。

这些都没有帮助。

我该如何解决这个错误?

4

4 回答 4

5

我做了以下事情,它似乎工作:

  1. 下载了适合我的处理器的开发包(64位)
  2. 将存档解压缩到文件夹中
  3. 将 lpsolve55j.jar 和 lpsolve55j.dll 复制到步骤 2 的目录中
  4. 将步骤 2 中的目录添加到 PATH
  5. 将步骤 2 中目录中的 lpsolve55j.jar 包含到我的 java 项目中(作为外部目录)。

现在它起作用了。

于 2012-06-08T14:19:24.717 回答
2

我做了以下事情,它100%有效:

Downloaded these two files "lpsolve55.dll" & "lpsolve55j.dll"
Copy these files and paste inside these folders "C:\Program Files\Java\jdk1.6.0_25\bin" and "C:\Program Files\Java\jre6\bin"
Put these two files "lpsolve55.dll" & "lpsolve55j.dll" in your project Folder also.

现在它起作用了。

于 2016-11-02T09:40:39.750 回答
0

对于我的 Windows 64bit maven,我刚刚下载了 lp_solve_5.5.2.5_dev_win64.zip 和 lp_solve_5.5.2.5_java.zip,解压缩它们执行以下两件事:

1) add lpsolve55j.jar to maven dependency, in my case it is as follows:
          <dependency>
            <groupId>lpsolver55j</groupId>
            <artifactId>lpsolve55j</artifactId>
            <scope>system</scope>
            <systemPath>${basedir}/lib/lpsolve55j.jar</systemPath>
            <version>55</version>
        </dependency>   
2) put lpsolve55.dll, lpsolve55j.dll into C:\Windows\System32. Be sure these two dlls are both 64 bit.

然后它工作。解压缩的 lp_solve_5.5.2.5_java 目录的自述文件安装部分中也提到了这些步骤

lp_solve_5.5_java/README.html
于 2016-11-21T02:54:09.607 回答
0

LPsolve 的设置

1.转到https://sourceforge.net/projects/lpsolve/files/ -> 点击 LpSolve 你会看到不同版本的 LPSolve。下载 lp_solve_5.5.2.5_dev_win64.zip (根据处理器类型) lp_solve_5.5.2.5_java.zip (for java)

2.提取两个文件( lp_solve_5.5.2.5_dev_win64 和 lp_solve_5.5.2.5_java 文件夹)

3.使用eclipse创建一个maven项目。(Demo项目)

4.转到 lp_solve_5.5.2.5_java 文件夹并复制 lib 文件夹并将其粘贴到项目目录的根目录中。(lib 文件夹包含处理器类型的支持文件(win64、win32 等)和 LPSolve 的 jar 文件,即“lpsolve55j.jar”)。

5.右击Demo Project->Build Path->Configure Build Path->Libraries->Add External jars->导航到你的项目目录->lib ->选择“lpsolve55j.jar”->open->apply-> '申请并关闭。

6.转到 lp_solve_5.5.2.5_dev_win64 文件夹复制“lpsolve55.dll”并将其粘贴到 C:\Windows 文件夹中。

7.转到 lib->win64->复制“lpsolve55j.dll”并将其粘贴到 C:\Windows 文件夹中。

8.新建一个类Demo

9. http://lpsolve.sourceforge.net/5.5/ 将此作为参考指南。

10.复制并粘贴简单示例并运行应用程序。

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();
    }
  }
}

如果您收到此错误:java.lang.unsatisfiedlinkerror no lpsolve55j in java.library.path

设置 java.library 路径。使用 Eclipse

1.在包资源管理器区域中选择您的项目,然后右键单击它。

2.选择构建路径→配置构建路径...选项。

3.在出现的窗口中,选择库选项卡。

4.然后,展开 JRE System library 选项并选择 Native library location。

5.单击右侧面板上的编辑...按钮。

6.找到所需的库,然后单击确定。

7.关闭窗口。

于 2019-11-05T12:38:09.190 回答