问题标签 [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 回答
839 浏览

sonarqube - SonarQube 5.1 PAM - java.library.path 中没有 jpam

我无法在 Debian 8(64 位)上的 SonarQube 5.1 上使用 PAM 插件。

我根据https://github.com/SonarCommunity/sonar-pam进行了设置,但在登录过程中仍然出现以下错误:

这是设置(声纳位于 /var/lib/sonarqube-5.1):

  • /var/lib/sonarqube-5.1/lib/JPam-1.1.jar
  • 本机库(64 位和 32 位)已放入/var/lib/sonarqube-5.1/bin/linux-x86-64/lib/libjpam.so并且/var/lib/sonarqube-5.1/bin/linux-x86-32/lib/libjpam.so(只是为了确保声纳以 32 位运行)

所有指向本机库的目录和库本身都+rx可以访问

知道什么会导致问题吗?

0 投票
0 回答
1087 浏览

java - Windows 中的 JNI 代码适用于 PATH 但不适用于 java.library.path

Windows 上的 Java 1.6 我正在使用一个使用 JNI 的 Java 库。我想使用 java.library.path 环境变量将它指向 DLL,但它不起作用。当我将相同的路径放在 PATH 变量中时,它工作正常。

成功案例:

C:>设置 PATH=\Progra~1\Company\Compan~1\lib;\Progra~1\Java\jdk1.6.0_43\bin

(设置没有驱动器或空格的路径以避免空间问题,尽管所有 jar 和库都在 C 驱动器上)

java -cp %CLASSPATH% com.company.samples.ft.MainClass

失败案例1:

设置 PATH=\Progra~1\Java\jdk1.6.0_43\bin C:>java -Djava.library.path=\Progra~1\Company\Compan~1\lib -cp %CLASSPATH% com.company.samples。 ft.MainClass ft\FT.cfg 无法加载基本公司 API 库异常在线程“main”java.lang.UnsatisfiedLinkError: C:\Program Files\Company\Company Client API\lib\CompanyAPI.dll: 找不到依赖位于 java.lang.ClassLoader.loadLibrary(ClassLoader.java:1732) 的 java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807) 的 java.lang.ClassLoader$NativeLibrary.load(Native Method) 的库。 Runtime.loadLibrary0(Runtime.java:823) at java.lang.System.loadLibrary(System.java:1028) at com.company.api.CompanyClientAPIImpl.(CompanyClientAPIImpl.ja va:113) at com.company.samples.ft .MainClass.run(主类。java:130) 在 com.company.samples.ft.MainClass.main(MainClass.java:498)

请注意,它确实找到了我的 DLL,但没有找到依赖项,即使它具有来自我原始 Windows PATH 的库路径。java.library.path 仍然缺少 JDK 路径,它曾经并且仍然在 PATH 变量中,所以让我们尝试将它添加到 java.library.path:

C:\Program Files\Company\Company Client APIs\samples\jcapi>java -Djava.library.path=\Progra~1\Company\Compan~1\lib;\Progra~1\Java\jdk1.6.0_43\bin -cp %CLASSPATH% com.company.samples.ft.MainClass 无法加载基本公司 API 库 线程“主”java.lang.UnsatisfiedLinkError 异常:C:\Program Files\Company\Company Client API\lib\CompanyAPI.dll : 在 java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807) 在 java.lang.ClassLoader.loadLibrary(ClassLoader.java:1732) 的 java.lang.ClassLoader$NativeLibrary.load(Native Method) 找不到依赖库) 在 java.lang.Runtime.loadLibrary0(Runtime.java:823) 在 java.lang.System.loadLibrary(System.java:1028) 在 com.company.api.CompanyClientAPIImpl.(CompanyClientAPIImpl.java:113) 在 com。公司。samples.ft.MainClass.run(MainClass.java:130) at com.company.samples.ft.MainClass.main(MainClass.java:498)

因此,即使 java.library.path 看起来与我的原始 PATH 完全相同,也找不到该库。知道这里有什么问题吗?

谢谢,迈克

0 投票
1 回答
584 浏览

java-native-interface - java.library.path 中没有“”,即使存在

我在eclipse中有一个java项目。我已将 .so 文件放在 libs\armeabi 下。然后我从 JRE 构建路径中的工作区输入了本机库位置。当我执行我的代码时,它会在 java.library.path 中给出错误“PC700”。

我有一个文件 Test.java

}

上面代码的答案是

当我在上面指定的目录中搜索时,我可以找到库 libPC700.so。

谁能帮我。

0 投票
1 回答
1501 浏览

java - 尝试将 RXTXcomm.jar 与我制作的可执行文件一起使用

我编写了一个程序来使用 RXTXcomm.jar 与 arduino 进行通信。它在 Eclipse 中有效,因为我在编辑类路径选项中“添加了外部罐子”。

我从这个网站上得到了教程:http ://www.drdobbs.com/jvm/control-an-arduino-from-java/240163864 。我最初尝试在该网站上运行命令以使 RXTXcomm.jar 工作而不必使用 eclipse 工作,但我无法让它工作(经过大量时间和研究)。但是,现在我想从我的程序中制作一个 .exe。我使用 Launch4J 制作了一个 .exe,它可以工作,但是,就像在 eclipse 工作之前一样,串行通信方面不起作用。

我已经想到了两个修复,但是我不知道其中任何一个的合理性:

1) 一些如何将我的 java gui 导出到一个 jar 文件中,该文件包含使用 eclipse 工作时添加的 RXTXcomm.jar

2) 编写一个我运行一次的脚本来设置计算机,这将允许我使用 RXTXcomm.jar

主要目标是创建此 .exe 并将所有支持文件与它一起放在一个文件夹中,可能还有一个安装程序/自述文件以使其在任何 PC 上运行。

这是我只运行 [myprogram].jar 文件时的叠加:

我对java幕后发生的事情知之甚少,我大多只了解代码。我认为这就是为什么我在这方面遇到麻烦。

0 投票
1 回答
1527 浏览

eclipse - 如何编辑 eclipse.ini 以添加现有的 java.library.path

在我的 Ubuntu 15.04 上为 Eclipse Luna 安装 Subclipse SVN 插件期间,我在安装 JavaHL SVN 接口时遇到了问题。(无法加载 JavaHL 库)

根据Subclipse 的关于 Linux 的 JavaHL 故障排除的常见问题解答,您必须将以下行添加到您的eclipse.ini

-Djava.library.path=</path/to/library>

就我而言,路径是/usr/lib/x86_64-linux-gnu/jni

虽然这解决了原始问题,但它可能会创建新问题,因为它会覆盖其中的任何内容java.library.path(在我的情况下/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib)。

所以我的问题是改写什么, 通过额外的路径eclipse.ini预先设置旧状态。java.library.path

注意:我不知道 java 库路径是如何估算的,我也不想知道。我也不想硬编码最终值。

0 投票
2 回答
5056 浏览

java - 将 java.library.path 添加到 java 清单

java.library.path 可以在 java 应用程序执行之前或执行期间设置(通过设置 java 库路径的全局环境变量或在运行 java exec jar 时使用标志)。可以像对具有 Class-Path 的类所做的那样,在 java jar 的清单文件中设置它吗?听起来像是应该支持的功能,如果它不存在的话。

编辑:因为正如stdunbar 所提到的,清单文件不支持 java.library.path 映射,所以我添加了一个使用清单文件的替代解决方案的答案。

0 投票
2 回答
7816 浏览

abap - Eclipse:未配置 ABAP 通信层... java.library.path 中没有 sapjco3

情况:

下载并安装 Eclipse Luna 后。
然后安装 SAP 插件:HANA、ABAP

问题:

Eclipse启动时弹出错误信息:

ABAP 通信层配置不正确。这可能是由于缺少 Microsoft 运行时 DLL VS2010 造成的。有关如何安装此组件的更多详细信息,请参阅安装指南或下载页面。

JCo 初始化失败,出现 java.lang.UnsatisfiedLinkError: no sapjco3injava.libray.path

Eclipse 错误消息

0 投票
0 回答
218 浏览

java - 自动将 libraryDependencies (natives) 移动到 Java 的 Library Path 或将 Library Path 设置为依赖项的位置

我在这里寻求帮助以自动化一个过程,除了手动执行之外,我没有看到其他解决方案。

在我的一个项目中,我有以下依赖项:

这会下载每个平台的实际 .jar 和本地文件。以这种方式发展是没有问题的。所有依赖项都在那里,并且找到了所有类。

但是编译和运行应用程序被证明是一个主要问题,你会得到:

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

现在我所做的不仅仅是次优的,它实际上破坏了使用托管库的全部目的:我手动将 jar 和 native 复制到一个lib-directory,该目录(默认情况下)是非托管库的 sbt 默认位置。

但是,如果我必须手动移动它,我也可以手动下载它并将其完全排除在sbt-file 之外。不是我真正想做的。

我怎样才能自动化这个过程?一般来说,我想到了两个想法,但不知道如何正确地将它们翻译为sbt

  1. 自动设置为-Djava.library.path依赖项所在的路径。这条路径因操作系统而异,当然我希望有一天能够将项目实际导出为 可运行 jar的项目;)没有重大缺陷或再次复制。
  2. 做我现在做的事,但自动:因此,将依赖项移动到lib-folder。

我不能是唯一一个为此苦苦挣扎的人(或者好吧,也许我是),但我发现的只是两个“解决方案”:

  1. “手动执行”:无法让 LWJGL 使用 IDEA 和 SBT 运行,正如我在长度中指出的那样 - 发现确实(小于)次优
  2. 使用https://github.com/philcali/sbt-lwjgl-plugin,但是:

目前不支持 SBT 版本 0.13。

远低于次优(再次):(

还有什么想法吗?我无法想象根本没有人需要与当地人打交道!

0 投票
1 回答
2002 浏览

java - 使用 Scala 和 SBT 向 java.library.path 添加一个库?

我正在使用 Play Framework 和 Scala。我需要添加一个具有一些 JNI 库依赖项的 Java 库。在他们的网站上,他们说将本机库放入java.library.path. 如何使用 Scala 将本机库添加到 SBT 项目?

0 投票
0 回答
1972 浏览

java - 从 Android System App 的数据中获取 Native Lib

我想从将安装在系统中的应用程序的数据中获取本机库路径,我尝试了以下代码:

但它给出了这个错误:

java.lang.UnsatisfiedLinkError: dlopen failed: library /data/data/xxxx/lib/lib.so not found

我试图不使用硬编码

但如果我使用此代码,则会显示相同的错误:

该应用程序将尝试从系统/应用程序获取本机库并显示相同的错误,有人可以帮助强制从数据中获取本机库吗?也许是这样的

context.getApplicationInfo().nativeLibraryDir

但是强制数据,而不是系统,因为当我尝试在日志中显示 libpath 时(当我尝试在数据中安装时),它会显示

/data/app/apppackage-1/lib/arm/libname.so

包名后有一个数字,有时-1,有时-2。