Windows\System32\lpsolve55j.dll: Не удается найти зависимые библиотеки

Когда я пытаюсь использовать LPSolve для 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".

Ничего из этого не помогает.

Как я могу исправить эту ошибку?

3 ответа

Решение

Я сделал следующее, и это похоже на работу:

  1. Скачал пакет dev, который подходит для моего процессора (64 бит)
  2. Извлек архив в папку
  3. Скопируйте lpsolve55j.jar и lpsolve55j.dll в каталог из шага 2
  4. Добавлен каталог из шага 2 в путь
  5. Включил lpsolve55j.jar из каталога на шаге 2 в мой проект java (как внешний каталог).

Теперь это работает.

Я сделал следующее, и он работает на 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.

Теперь это работает.

Для моего 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.

Тогда это работает. Эти шаги также упоминаются в распакованном файле readme каталога lp_solve_5.5.2.5_java, раздел "Установка".

lp_solve_5.5_java/README.html

Настройка для 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 (для java)

2. Извлеките оба файла (папку lp_solve_5.5.2.5_dev_win64 и lp_solve_5.5.2.5_java)

3. Создайте проект maven с помощью eclipse (демонстрационный проект).

4. Найдите папку lp_solve_5.5.2.5_java, скопируйте папку lib и вставьте ее в корень каталога вашего проекта.(папка lib содержит вспомогательные файлы типа процессора (win64,win32 и т. д.) и файл jar LPSolve, то есть "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 "psolve55.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 в java.library.path

Установка пути java.library. используя Eclipse

1. Выберите свой проект в области Package Explorer и щелкните его правой кнопкой мыши.

2. Выберите "Путь сборки" - "Настроить путь сборки...".

3. В появившемся окне выберите вкладку Библиотеки.

4. Затем разверните опцию Системная библиотека JRE и выберите расположение собственной библиотеки.

5. Нажмите кнопку "Редактировать..." на правой панели.

6. Найдите нужную библиотеку и нажмите OK.

7. Закройте окно.

Другие вопросы по тегам