UnsatisifedLinkedError:无法在 jar 文件中找到存根库
Posted
技术标签:
【中文标题】UnsatisifedLinkedError:无法在 jar 文件中找到存根库【英文标题】:UnsatisifedLinkedError : Could not locate stub library in jar file 【发布时间】:2016-04-03 14:06:49 【问题描述】:我正在尝试使用这个 jnr-jffi 库。它似乎依赖于jffi,所以我也构建了它并包含在我的 libs 文件夹中。
我加载原生代码的代码如下:
MATH_LIB = LibraryLoader.create(MathLib.class).load("math");
MATH_LIB.Multiply(1, 2);
我收到以下错误:
java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: could not locate stub library in jar file. Tried [jni/Darwin/libjffi-1.2.dylib, /jni/Darwin/libjffi-1.2.dylib]
不管怎样,我确实包含了一个文件夹 jni
,它似乎包含一堆适用于各种平台的本机库。
如何继续使用此库加载我的本机代码。
请注意,我在启动我的项目时尝试添加各种路径,并将库添加到我机器上的不同位置,但没有成功。
这意味着我需要弄清楚如何进一步调试?欢迎任何建议。
【问题讨论】:
我也面临同样的问题。你能解决这个问题吗? 你能解决这个问题吗? 对不起,伙计们。现在才看到这些cmets。我想我确实修复了它,但不记得是如何修复的。 【参考方案1】:在使用 JNR 时使用maven 是最简单的。 Maven 会自动解析所有需要的依赖。
您可以将其添加到您的pom.xml
:
<dependency>
<groupId>com.github.jnr</groupId>
<artifactId>jnr-ffi</artifactId>
<version>2.0.9</version>
</dependency>
或者查找更新的版本here。
【讨论】:
我尝试将它添加到 pom 中并与最终的 jar 一起打包。但是没用?【参考方案2】:您需要文件的平台特定版本:libjffi-1.2.dylib 请参阅this 问题并尝试为您的平台版本查找包含上述库文件的相关 jar。
【讨论】:
以上是关于UnsatisifedLinkedError:无法在 jar 文件中找到存根库的主要内容,如果未能解决你的问题,请参考以下文章
无法推送到 Heroku '致命:无法访问..无法解析主机:(无);提供节点名或服务名,或未知'
无法写入内容:无法延迟初始化角色集合,无法初始化代理 - 无会话