首页 > 解决方案 > CPLEX 12.8.0 运行时错误

问题描述

我正在尝试在我的 macbook 上运行 CPLEX java 代码。我已经安装了 CPLEX studio 12.8.0 版本。

我编译代码没有问题,但是当我尝试运行代码时,它给了我以下运行时错误。

错误

java.lang.ExceptionInInitializerError
    at test.java.cplexTests.TestCplexExecutor.testCreateHiveModel(TestCplexExecutor.java:39)
Caused by: java.lang.RuntimeException:
Native code library failed to load: ensure the appropriate library (opl1280.dll/.so) is in your path.
Exceptions:
no opl1280 in java.library.path
no oplb in java.library.path
no opl_lang_wrap_cpp in java.library.path
no opl_core_wrap_cpp_java1280 in java.library.path
no opl_core_wrap_cpp in java.library.path
no cp_oaas1280 in java.library.path
no cp_oaas in java.library.path
no cp_wrap_cpp_java1280 in java.library.path
no cp_wrap_cpp in java.library.path
no concert_wrap_cpp_java1280 in java.library.path
no concert_wrap_cpp in java.library.path

以下是我使用运行代码的命令

mvn -Djava.library.path=/Applications/CPLEX_Studio_Community128/opl/bin/x86-64_osx  clean test

唯一存在名称为opl1280的文件是下面提到的

/Applications/CPLEX_Studio_Community128/opl/bin/x86-64_osx/libopl1280.dylib

标签: cplex

解决方案


终于发现了一个问题,由于某种原因,提供的路径使用被忽略了。当我在调试模式下运行 maven 时收到该消息。mvn -X

在surefire插件配置中添加了路径,它解决了我的问题。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.21.0</version>
    <dependencies>
        <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit4</artifactId>
            <version>2.21.0</version>
        </dependency>
    </dependencies>
    <configuration>
        <forkMode>once</forkMode>
        <argLine>-Djava.library.path=/Applications/CPLEX_Studio_Community128/opl/bin/x86-64_osx:/Applications/CPLEX_Studio_Community128/opl/oplide/</argLine>
    </configuration>
</plugin>

推荐阅读