问题标签 [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.
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.6(JavaASAPSDK所依赖的)的 lib。
问题是两个库都在同一个目录中!
关于什么可能导致这个问题以及如何解决它的任何想法???
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 中但只有其中一个有效?
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 文件。我尝试多次删除项目并将其添加到构建路径,但问题仍然存在。这个问题背后的原因可能是什么?
jenkins - 将文件夹添加到特定项目的 Jenkins java.library.path
我正在尝试在我的 Jenkins 构建中加载一个 .so 文件(本机库)。我相信原生库都是通过 java.library.path 读取的。我可以为特定的 Jenkins 项目添加路径吗?
java - 为什么 LWJGL .dll 文件在 .jar 导出后不起作用?
将我的游戏导出到 jar 后,它不起作用。线程“主”java.lang.UnsatisfiedLinkError 中的异常:java.library.path 中没有 jinput-dx8_64
我读到我必须将文件放在计算机中的任何位置并将 .dll 文件路径添加到 java.libraty.path,但是,如果我在另一台计算机上尝试游戏,它会起作用吗?
坦克:D
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_PATH
under Environment variables
in设置为与没有任何成功Edit Configurations...
的目录相同的目录。java.library.path
由于给定的java.lang.UnsatisfiedLinkError: no dummy in java.library.path
错误,该问题与未找到依赖库无关。
当我在 Windows 中尝试相同的设置时,一切正常,只要我设置java.library.path
正确,库就会成功加载。如果java.library.path
不正确,则测试显然也会在 Windows 上失败。我已经尝试过设置和不设置LD_LIBRARY_PATH
,java.library.path
以及两者的每一种组合,在 Linux 上的结果没有变化。似乎设置java.library.path
对linux没有影响,但我不知道这是IntelliJ中的错误还是与linux相关的东西。
编辑:
在此处显示的原始测试用例中,调用了库libdummy.so
,在这种情况下,只需删除lib
调用中的前缀即可System.loadLibrary
工作,但在我的真实情况下,库没有lib
前缀,因此我现在相应地更新了测试用例并重新编译具有名称的测试库,dummy.so
现在测试用例再次失败并出现相同的错误,如上所述。感谢 KC Wong 的提示!
在此先感谢您对此事的任何帮助!
-马丁
java - 如何在eclipse中安装jinput?
最近几天我搜索了如何在 java 中使用像 DS4 这样的控制器,它让我进入了 jinput。下载 zip 文件后。我将这两个 JAR 添加到项目中并尝试运行我在安装指南中找到的测试代码。
问题是它说
java.library.path 中没有 jinput-dx8_64”。
我知道这个问题还有另一个线程,但我没看懂,可能是因为我的英语不好,也可能是因为我的知识。我试图通过将文件的目录添加到jre native library
eclipse 中来修复它,但它一直说同样的错误。
java - android 源代码中创建的 PathClassLoader 实例在何时何地?
在研究android源码的时候,注意到app中的通用类加载器是一个实例PathClassLoader
,这个类中有两个构造函数。一种是这样的:
另一个是:
但是在启动应用程序的过程中,我在源代码中找不到第二个构造函数的调用。那么 libraryPath 参数的值从何而来呢?众所周知,libraryPath是指包含原生库的目录列表,用于初始化nativeLibraryDirectories
DexPathList 对象的一个字段 的值。那么如果没有调用三参数的第二个构造函数,怎么 nativeLibraryDirectories
初始化的值呢?因此,应用程序如何找到它的原生库?
实际上,我想知道谁决定了 nativeLibraryDirectories 的值?
希望有人可以指导我。非常感谢。
java - 为什么eclipse没有使用正确的“java.library.path”?
我正在使用 Ubuntu 16.04,并且我有一个项目,我需要将路径“usr/local/MATLAB/R2017a/bin/glnxa64”添加为 VM 参数或本机库位置,但我想避免这样做,所以我已经读到我可以通过在 .bashrc 文件中添加这一行来做到这一点
显然它正在工作,因为当我"java -XshowSettings:properties"
在终端上编写命令时,我得到了这个输出:
正如您所注意到的,这两个第一路径是我在 bashrc 文件中设置的路径。
但是为什么当我在 Java 上运行这些行时:
我得到了这个输出:
为什么缺少前两条路径?我怎样才能做到这一点?