java - 使用maven打包时如何调用SO原生库?

标签 java swing maven shared-libraries jnienv

我用 swing、maven 和一些 native 库开发了一个项目。现在我在从 Maven 包生成 jar 后从 java 调用 SO 时遇到问题。我将其包含在 POM.xml 中。它将该文件包含在 jar 中。但它不会链接两者。

我在执行 jar 时遇到错误,例如 “线程“main”java.lang.UnsatisfiedLinkError中出现异常:java.library.path中没有项目”

 <resources>
	      <resource>
	        <filtering>false</filtering>
	        <directory>${project.basedir}/lib</directory>
	        <includes>
	          <include>my.so</include>
	          <include>cv2.so</include>
	        </includes>
	      </resource>
	  </resources> 

还想添加库文件夹并将其导出到jar中。有什么办法可以做到吗?

最佳答案

您的 native 库路径不适合您的程序运行。请参阅Call c function from Java

在执行程序之前使用-Djava.library.path=/path/to/libs设置路径。

使用System.loadLibrary("HelloWorld")在运行时设置路径

请再次查看我发布的链接。

关于java - 使用maven打包时如何调用SO原生库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47183822/

相关文章:

java - 如何在 Java 中获取主机名的规范名称?

java - 无效类型代码 : 30 java in ObjectInputStream

java - NetBeans 文件选择器。如何使用它将文件从一个位置复制到字符串中定义的另一个位置?

Java Swing GUI 似乎没有

scala - Spark 1.5.1、Cassandra 连接器 1.5.0-M2、Cassandra 2.1、Scala 2.10、NoSuchMethodError Guava 依赖项

java - 无法在 Java 中使用 iText 7.1.9 创建 PDF

java - 如何从一个类调用另一个类

java - 何时使用 ESB?通过电子邮件/XMPP/SMS 发送消息

java - 按下 UP 键时乒乓 Racket 底部不向上移动

maven - 将 Perforce scm 配置到 Maven 项目中以获取最新的更改列表