В моей Java-программе я пытаюсь использовать несколько собственных библиотек.Все работает нормально, если я использую intelij IDE для запуска кода, однако, если я запускаю код из командной строки (из терминала), это дает мне ошибку связывания библиотеки
Я использую Mac OS Sierra и Java 1.8
Ниже приведен мой pom.xml.
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<mainClass>${start-class}</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<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/</argLine>
<environmentVariables>
<DYLD_LIBRARY_PATH>/Applications/CPLEX_Studio_Community128/opl/bin/x86-64_osx/</DYLD_LIBRARY_PATH>
</environmentVariables>
</configuration>
</plugin>
</plugins>
</build>
Java-код
@Test
public void testCPLX(){
System.out.println("DYLD_LIBRARY_PATH env: " +System.getenv("DYLD_LIBRARY_PATH"));
IloOplFactory oplF = new IloOplFactory();
}
если я запускаю этот код в InteliJ IDE, он запускается и печатает значение DYLD_LIBRARY_PATH
как /Applications/CPLEX_Studio_Community128/opl/bin/x86-64_osx/
Однако, если запустить программу, используя следующую команду.
mvn clean test -Dtest = test.java.cplexTests.TestCplex
Я получаю null
для DYLD_LIBRARY_PATH
, поэтому ошибка связывания библиотеки на следующем шаге.
Я пытался установить путь DYLD_LIBRARY_PATH перед запуском команды mvn
, но это не помогает.Я попытался установить DYLD_LIBRARY_PATH
как часть команды mvn
, это тоже не помогает.
Первая попытка
export DYLD_LIBRARY_PATH = / Applications / CPLEX_Studio_Community128 / opl / bin / x86-64_osx /
mvn clean test -Dtest= test.java.cplexTests.TestCplex
Вторая попытка
mvn -DDYLD_LIBRARY_PATH = / Applications / CPLEX_Studio_Community128 / opl / bin / x86-64_os/ -Djava.library.path = / Applications / CPLEX_Studio_Community128 / opl / bin / x86-64_osx / -Dtest = test.java.cplexTests.TestCplex clean test
Если я удаляю секцию environmentVariables
изmaven
Я получаю ту же ошибку при запуске через InteliJ Idea.