Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
Java &引用;本机代码库无法加载“0”;运行exported.jar时在IDE外部_Java_Jar_Java Native Interface_Executable Jar - Fatal编程技术网

Java &引用;本机代码库无法加载“0”;运行exported.jar时在IDE外部

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构建路径、库中的

正如标题中所述,我的程序不会在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构建路径、库
中的.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的外部位置才能正常运行。