问题标签 [java.library.path]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
456 浏览

jar - 运行 Clojure JAR 时 Java 找不到本机库

我正在处理的项目是一个服务器端 Clojure 项目,其中Leiningen作为我的构建工具。

当我尝试运行使用Leiningen的 uberjar 创建的 JAR 时,就会出现问题。JAR 依赖于我放置在以下位置的一些本机库:/usr/lib/nativedeps/so

在运行 JAR 之前,我将环境变量LD_LIBRARY_PATH与本机库路径一起导出,以便链接器知道在哪里查找本机库:

然后我运行它的 JAR:

抛出异常:

java.lang.UnsatisfiedLinkError:java.library.path 中没有 JavaASAPSDK

这意味着链接器无法找到JavaASAPSDK(它是/usr/lib/nativedeps/so中的本机库之一),我需要在java.library.path中指定库路径。所以我跑:

抛出异常:

java.lang.UnsatisfiedLinkError:/usr/lib/nativedeps/so/libJavaASAPSDK.so:libprotobuf.so.6:无法打开共享对象文件:没有这样的文件或目录

这意味着找到了 lib JavaASAPSDK,但找不到另一个名为libprotobuf.so.6JavaASAPSDK所依赖的)的 lib。

问题是两个库都在同一个目录中!

关于什么可能导致这个问题以及如何解决它的任何想法???

0 投票
0 回答
216 浏览

java - java如何找到本机库?

我知道我必须将我的库存储到 java.library.path 文件夹中。我将我的 dll 放在 c:\windows\system32 文件夹中(我使用的是 32 位 jre)并尝试了以下代码:

我得到了这个输出:

C:\Program Files (x86)\Java\jre1.8.0_73\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\ProgramData\Oracle\Java\ javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX \Common;D:\Programmi\Skype\Phone\;C:\Program Files\SourceGear\Common\DiffMerge\;C:\Program Files\MariaDB 10.1\bin;。

而这个错误:

线程“主”java.lang.UnsatisfiedLinkError 中的异常:java.library.path 中没有 ZebraNativeUsbAdapter_32

然后我尝试将 dll 文件放入 C:\Program Files (x86)\Java\jre1.8.0_73\bin 并且它可以工作!但是为什么这两个文件夹都列在 java.library.path 中但只有其中一个有效?

0 投票
4 回答
6074 浏览

java - java.lang.UnsatisfiedLinkError:java.library.path 中没有 frmjapi

我有一个关于 Eclipse 的项目,我正在处理它,我在 XP 32 位机器上使用它,我想将该项目移动到我的 Windows 7 64 位电脑上。我可以毫无错误地编译我的项目,但是当我运行它时,我得到了错误Exception in thread "main" java.lang.UnsatisfiedLinkError: no frmjapi in java.library.path。我在其他帖子中查找了错误,但其中大多数都在处理本机库,我的项目只包含这个 1 个 jar 文件。我尝试多次删除项目并将其添加到构建路径,但问题仍然存在。这个问题背后的原因可能是什么?

0 投票
1 回答
1746 浏览

jenkins - 将文件夹添加到特定项目的 Jenkins java.library.path

我正在尝试在我的 Jenkins 构建中加载一个 .so 文件(本机库)。我相信原生库都是通过 java.library.path 读取的。我可以为特定的 Jenkins 项目添加路径吗?

0 投票
2 回答
423 浏览

java - 为什么 LWJGL .dll 文件在 .jar 导出后不起作用?

将我的游戏导出到 jar 后,它不起作用。线程“主”java.lang.UnsatisfiedLinkError 中的异常:java.library.path 中没有 jinput-dx8_64

我读到我必须将文件放在计算机中的任何位置并将 .dll 文件路径添加到 java.libraty.path,但是,如果我在另一台计算机上尝试游戏,它会起作用吗?

坦克:D

0 投票
0 回答
1895 浏览

java - java.library.path 在 Linux 上的 IntelliJ 中没有影响

我在 linux 上遇到了 java.library.path 的一个奇怪问题,我不确定问题是 IntelliJ 的想法还是 java.library.path 在 windows 和 linux 上的使用方式不同。

设置是在 Intellij 中创建一个简单的 JUnit4 测试用例,如下所示:

为了为给定的测试用例设置 java.library.path 我去Edit Configurations...设置-ea -Djava.library.path=</path/to/directory/containing/dummy.so>in VM options,但是在运行测试用例之后,这是输出:

如您所见,我尝试使用System.load(...)first 加载该库,并且我还尝试将LD_LIBRARY_PATHunder Environment variablesin设置为与没有任何成功Edit Configurations...的目录相同的目录。java.library.path由于给定的java.lang.UnsatisfiedLinkError: no dummy in java.library.path错误,该问题与未找到依赖库无关。

当我在 Windows 中尝试相同的设置时,一切正常,只要我设置java.library.path正确,库就会成功加载。如果java.library.path不正确,则测试显然也会在 Windows 上失败。我已经尝试过设置和不设置LD_LIBRARY_PATHjava.library.path以及两者的每一种组合,在 Linux 上的结果没有变化。似乎设置java.library.path对linux没有影响,但我不知道这是IntelliJ中的错误还是与linux相关的东西。

编辑:

在此处显示的原始测试用例中,调用了库libdummy.so,在这种情况下,只需删除lib调用中的前缀即可System.loadLibrary工作,但在我的真实情况下,库没有lib前缀,因此我现在相应地更新了测试用例并重新编译具有名称的测试库,dummy.so现在测试用例再次失败并出现相同的错误,如上所述。感谢 KC Wong 的提示!

在此先感谢您对此事的任何帮助!

-马丁

0 投票
1 回答
1561 浏览

java - 如何在eclipse中安装jinput?

最近几天我搜索了如何在 java 中使用像 DS4 这样的控制器,它让我进入了 jinput。下载 zip 文件后。我将这两个 JAR 添加到项目中并尝试运行我在安装指南中找到的测试代码。

问题是它说

java.library.path 中没有 jinput-dx8_64”。

我知道这个问题还有另一个线程,但我没看懂,可能是因为我的英语不好,也可能是因为我的知识。我试图通过将文件的目录添加到jre native libraryeclipse 中来修复它,但它一直说同样的错误。

0 投票
1 回答
1085 浏览

java - 运行 Executable Jar 在 java.library.path 错误中没有抛出 opencv_java310 但在 IDE 中运行良好

我使用 Opencv 3.1 Java 库制作了 JavaFX 项目。

问题是我的项目从 IDE 运行完全完美,但是当我尝试.jardist文件夹运行文件时,它会引发不满意的链接错误。

我已经搜索过这个问题并找到了很多答案,但没有一个能解决我的问题。我认为这些解决方案可能是针对旧版本的。

我的主要方法如下:-

我还正确设置了库路径

在此处输入图像描述

并且在指定位置也有.dll 文件

在此处输入图像描述

如果我从 IDE 运行,该应用程序将完全按预期运行!

PS:我也尝试将项目放在 Eclipse 中并尝试创建 jar,但同样的事情发生了,它在 IDE 中运行,但在我运行 jar 时没有

错误详情 :

0 投票
1 回答
463 浏览

java - android 源代码中创建的 PathClassLoader 实例在何时何地?

在研究android源码的时候,注意到app中的通用类加载器是一个实例PathClassLoader,这个类中有两个构造函数。一种是这样的:

另一个是:

但是在启动应用程序的过程中,我在源代码中找不到第二个构造函数的调用。那么 libraryPath 参数的值从何而来呢?众所周知,libraryPath是指包含原生库的目录列表,用于初始化nativeLibraryDirectoriesDexPathList 对象的一个​​字段 的值。那么如果没有调用三参数的第二个构造函数,怎么 nativeLibraryDirectories初始化的值呢?因此,应用程序如何找到它的原生库?

实际上,我想知道谁决定了 nativeLibraryDirectories 的值?

希望有人可以指导我。非常感谢。

0 投票
0 回答
850 浏览

java - 为什么eclipse没有使用正确的“java.library.path”?

我正在使用 Ubuntu 16.04,并且我有一个项目,我需要将路径“usr/local/MATLAB/R2017a/bin/glnxa64”添加为 VM 参数或本机库位置,但我想避免这样做,所以我已经读到我可以通过在 .bashrc 文件中添加这一行来做到这一点

显然它正在工作,因为当我"java -XshowSettings:properties" 在终端上编写命令时,我得到了这个输出:

正如您所注意到的,这两个第一路径是我在 bashrc 文件中设置的路径。

但是为什么当我在 Java 上运行这些行时:

我得到了这个输出:

为什么缺少前两条路径?我怎样才能做到这一点?