Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven-java.library.path出现不满意的链接错误_Maven_Java Native Interface - Fatal编程技术网

Maven-java.library.path出现不满意的链接错误

Maven-java.library.path出现不满意的链接错误,maven,java-native-interface,Maven,Java Native Interface,我在尝试让Maven加载我的本机库时遇到问题。目前,我将我的库文件(.so)放在src/main/resources/中,它给了我一个错误,在java.library.path中找不到它。我还尝试将其放在项目的基本目录中,但得到了相同的结果 下面是我尝试过的maven插件,但它似乎不起作用 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-s

我在尝试让Maven加载我的本机库时遇到问题。目前,我将我的库文件(.so)放在
src/main/resources/
中,它给了我一个错误,在java.library.path中找不到它。我还尝试将其放在项目的基本目录中,但得到了相同的结果

下面是我尝试过的maven插件,但它似乎不起作用

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
      <systemProperties>
        <property>
          <name>java.library.path</name>
          <value>${project.build.directory}</value>
        </property>
      </systemProperties>
    </configuration>
  </plugin>

org.apache.maven.plugins
maven surefire插件
java.library.path
${project.build.directory}
如果有帮助,我可以直接从Eclipse运行我的项目。我知道如何让它在Eclipse中工作,但希望它与maven一起工作


@编辑我还尝试在命令行上运行它,但仍然收到相同的错误。我在项目中执行了以下操作:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
        <argLine>-Djava.library.path=/path/to/your/libs:${java.library.path}</argLine>
        </configuration>
    </plugin>
</plugins>

org.apache.maven.plugins
maven surefire插件
-Djava.library.path=/path/to/your/libs:${java.library.path}

我知道
${project.build.directory}
指向
${basedir}/target
。您已经提到,
.so
被放置在
src/main/resources
中,它将被复制到
${project.build.directory}/classes
${basedir}/target/classes
)中。但是当我查看jar时,它位于baseYes,您是正确的。生成的jar文件包含基本级别的资源。但在那之前,肯定会执行。阶段测试在阶段包之前进行。请参阅有没有办法指向罐子里的那个?或者jar中的一个文件夹,比如lib/?我只用于指向dll/so的完整路径,并且理解不可能指向jar文件。请看