当 运行 导出 .jar 时 "Native code library failed to load" 在 IDE 之外

"Native code library failed to load" outside of IDE when running exported .jar

如标题所述,我的程序无法在 Eclipse 之外启动。我导入了一个由 xy.jar 和 xy_jni.dll

组成的库

CMD文件夹内jar-file:

java -jar myprogramm.jar

后面是语句:

"Native code library failed to load. Please add the xy-folder as location for native libraries. java.lang.UnsatisfiedLinkError: no xy_jni in java.library.path

导出jar-file时点击解压或打包资源都没关系。

还在 Project-Settings, Java Build Path, Libraries 下添加了 .jar 和 xy_jni(.dll),并在库中的所有可扩展文件中将 "xy-folder" 设置为 "Native library location"。同样在库下,我添加了一个名为 "xy-folder" 的 "Add Library" 来抑制 .jar & xy_jni.dll

当使用文件查看器打开最终导出的 jar-file 时,xy-folder 仅包含在 xy_jni.dll 中,xy.jar 在根文件夹中。

我做错了什么?非常感谢您!

jar 文件中分发 dll/so/dylib 并不容易。这里的原因是你在加载库时依赖于系统。

通常,库必须位于文件系统的某个位置。这样,它们由 System.loadSystem.loadLibrary.

加载

您可以使用简单的解决方案来解决这个问题。您所要做的就是将本机代码提取到某个位置并从那里加载它。

在此处查看与从 JAR:

加载库相关的完整示例

https://github.com/mkowsiak/jnicookbook/tree/master/recipes/recipeNo035