Java程序没有从命令行

时间:2018-06-13 15:08:02

标签: java maven

在我的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,因此下一步中的库链接错误。

我在运行mvn命令之前尝试设置DYLD_LIBRARY_PATH路径,但它没有帮助。我尝试将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_osx / -Djava.library.path = / Applications / CPLEX_Studio_Community128 / opl / bin / x86-64_osx / -Dtest = test.java.cplexTests.TestCplex清洁测试

如果我从environmentVariables删除maven部分,则在运行InteliJ Idea时会出现同样的错误。

0 个答案:

没有答案