我正在尝试在我的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
答案 0 :(得分:0)
终于发现了一个问题,由于某种原因,提供的路径被忽略了。在调试模式下运行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>