java - 运行 jar 文件返回 java.library.path 错误

标签 java jar

我已经通过 netbeans 构建了一个 jar,指定了我的主类和库。在属性部分中,我在库部分中有库,并且我已经设置了

-Djava.library.path=/path/to/lib

在运行部分。但是,当我使用

通过命令行运行 jar 文件时
java -jar

返回错误

java.lang.UnsatisfiedLinkError: no libName in java.library.path

与我的jar文件同级目录下有一个lib目录,里面有库,jar中的manifest文件包含

Class-Path: lib/libName.jar

我的 jar 文件有什么问题?

最佳答案

java.library.path 不用于加载 jar 文件,而是用于加载例如使用的 native 库。 JNI。从错误消息看来,您的应用程序正在调用 System.loadLibrary("libName"),因此您的系统正在寻找 libName.dll(在 Windows 上)或 libName.so(在 Unix 上)不存在。

如果 libName.jar 中只有一些类,则不需要 System.loadLibrary() 也不需要 java.library.path > - 只需在类路径中包含 libName.jar,java 就会找到它需要的一切。

如果 libName.jar 包含您想要使用的 native 库:没有直接的方法可以从内部加载 dllso jar 而不先解压它们,因此最简单的方法是将 native 库放在 jar 之外,作为 /lib 目录中的额外文件。还有一些库允许您使用 jar 内的 native 库 - 请参阅 this question了解更多信息。

关于java - 运行 jar 文件返回 java.library.path 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24737851/

相关文章:

java - 获取 ArrayList 中的最新形状以在其他形状之上绘制 - Java

java - 如何在不覆盖序列化方法的情况下为特定类覆盖 JsonSerializer 的 isEmpty 方法?

java - JComboBox 未在 jTable 中打开

java - 更好 <h :selectManyCheckbox> layout?

java - 如何将所有jar文件放在一个jar文件中?

java - 如何使用 Maven 将 GWT 应用程序打包到 fat JAR 中?

从 jar 文件加载类时出现 java.lang.ClassNotFoundException

java - toString 类中的 Return 语句

java - 从命令行创建 jar 文件

linux - 连接丢失后,可运行的 jar 文件会在主机上运行吗?如果是,如何运行?