java - 无法加载 GLPK for Java 的动态链接库

标签 java linear-programming glpk

我正在尝试在我的 java 项目中使用 GLPK。我点击了这里的链接https://wiki.nps.edu/pages/viewpage.action?pageId=113606659安装和配置 java 的 GLPK。而在java项目中,我使用了

compile 'org.gnu.glpk:glpk-java:1.12.0'

包含 glpk java 项目。另外,我将 jar glpk-java-1.12.0.jar 复制到项目 lib 文件夹中,该文件夹由 gradle 包含为

flatDir {
   dirs 'lib'
}

下面是我的测试代码

public class ILPTest {
    @SuppressWarnings({ "rawtypes", "unchecked"})
    public static void main(String[] args) {
        testGLPK();
    }

    private static void testGLPK() {
        System.out.println(GLPK.glp_version());
    }
}

但是,当我运行它时,出现以下错误

The dynamic link library for GLPK for Java could not be loaded.
Consider using
java -Djava.library.path=
The current value of system property java.library.path is:
/Users/heya/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.

java.vendor: Oracle Corporation
java.version: 1.8.0_172
java.vm.name: Java HotSpot(TM) 64-Bit Server VM
java.vm.version: 25.172-b11
java.runtime.version: 1.8.0_172-b11
data model: 64 bit

    Exception in thread "main" java.lang.UnsatisfiedLinkError: no glpk_java in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
        at java.lang.Runtime.loadLibrary0(Runtime.java:870)
        at java.lang.System.loadLibrary(System.java:1122)
        at org.gnu.glpk.GLPKJNI.<clinit>(GLPKJNI.java:29)
        at org.gnu.glpk.GLPK.glp_version(GLPK.java:2296)
        at com.ILPTest.testGLPK(ILPTest.java:46)
        at com.ILPTest.main(ILPTest.java:36)

我在这里错过了什么?请帮忙。

最佳答案

在 IntelliJ 中配置 -Djava.library.path=/usr/local/lib/jni 后,它工作正常。

关于java - 无法加载 GLPK for Java 的动态链接库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58316312/

相关文章:

c++ - 在 parallel_for 循环中使用 GLPK

c++ - 使用 C++ 将 vector 数组转换为 .MPS 文件

python - PuLP如何根据之前的结果设置下一个变量?

java - 如何使用列表在我的布局中的工具栏中放置一个按钮?

java - android.database.sqlite.SQLiteException : no such column: favorite1 (code 1)

mathematical-optimization - 尽管数学上不可能,但 Gurobi 报告了无限模型

c++ - 让 GLPK 在程序终止时清理的最干净的方法

r - GLPK:尝试安装 R 包时没有此类文件或目录错误

java - 如何使用 Java 从 MongoDB 读取嵌套数组

java - Switch 执行所有的 case 语句