Java &引用;本机代码库无法加载“0”;运行exported.jar时在IDE外部
正如标题中所述,我的程序不会在Eclipse之外启动。我导入了一个由xy.jar和xy_jni.dll组成的库 jar文件文件夹中的CMD:Java &引用;本机代码库无法加载“0”;运行exported.jar时在IDE外部,java,jar,java-native-interface,executable-jar,Java,Jar,Java Native Interface,Executable Jar,正如标题中所述,我的程序不会在Eclipse之外启动。我导入了一个由xy.jar和xy_jni.dll组成的库 jar文件文件夹中的CMD: java -jar myprogramm.jar 随后是声明: 未能加载本机代码库。请将xy文件夹添加为本机库的位置。java.lang.UnsatifiedLink错误:java.library.path中没有xy_jni 导出jar文件时,单击extract或package Resources并不重要 同样在项目设置下,添加了Java构建路径、库中的
java -jar myprogramm.jar
随后是声明:
未能加载本机代码库。请将xy文件夹添加为本机库的位置。java.lang.UnsatifiedLink错误:java.library.path中没有xy_jni
导出jar文件时,单击extract或package Resources并不重要
同样在项目设置下,添加了Java构建路径、库
中的.jar&xy_jni(.dll),在库中的所有可扩展项中,“xy文件夹”设置为“本机库位置”。在库下,我还添加了一个名为“xy folder”的“Add library”,禁止.jar&xy_jni.dll
使用文件查看器打开最终导出的jar文件时,xy文件夹仅包含在xy_jni.dll中,xy.jar位于根文件夹中
我做错了什么?非常感谢您!在
jar
文件中分发dll/so/dylib
并不容易。原因是在加载库时依赖于系统
通常,库必须放在文件系统的某个地方。这样,它们就可以通过system.load
和system.loadLibrary
加载
您可以使用简单的解决方案来解决这个问题。您所要做的就是将本机代码提取到某个位置并从那里加载
在这里查看有关从JAR
加载库的完整示例:
如您在第一段和第三段中所述,我在清理了eclipse中的项目和文件后,设法以导出的jar可以找到这些依赖项的方式对其进行排序。然而,.dll必须位于jar的外部位置才能正常运行。