问题标签 [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 投票
14 回答
297929 浏览

java - 如何使用 Eclipse 启动将本机库添加到“java.library.path”(而不是覆盖它)

我有一个需要添加到java.library.path的本机库。使用 JVM 参数-Djava.library.path=path...我可以根据需要设置路径。

我的问题是我的其他库(pentaho 报告)根据默认的 java.library.path(包括系统目录等)搜索字体,并且手动设置会覆盖默认路径。

所以:我怎样才能路径条目添加到默认的 java.library.path 而不是覆盖它(这似乎是用 -Djava.library.path 完成的)?(我不想手动添加默认路径,这对部署不利)

编辑:抱歉缺少细节;我正在使用 Eclipse。(部署是用 JNLP 完成的,我可以 在资源下使用nativelib

0 投票
4 回答
3757 浏览

java - 设置 java.library.path 的替代方法?

我有一个 Java 程序对本地库(“mylib.so”)进行一些 JNI 调用。每当我想从命令行运行这个程序时,我必须将 java.library.path 设置为我的库的位置,如下所示:

我想知道是否有任何替代方案,因此我不必在每次运行程序时都使用 -D 选项进行设置。

我尝试添加/var/natives/到我的 $PATH 变量,但它仍然抱怨如果我没有使用 -D 显式设置它,它无法找到库。

我还有其他选择吗?

0 投票
2 回答
9093 浏览

java - Java - Linux 上的 java.library.path 问题

我可以在我的 mac 上运行带有 cmd 行的一些依赖项的 java 程序,但是当我尝试在 linux SUSE 11 机器上运行它时,我得到了它:

这是我正在运行的 cmd 行:

任何帮助表示赞赏!

0 投票
2 回答
5078 浏览

java - 将库添加到 java.library.path

我正在尝试运行通过运行以下批处理文件执行的程序:

@echo 关闭

rem 在此处添加额外的 JVM 选项

设置 OPTS=-Xms64m -Xmx256m

rem 构建命令行参数

设置 CMD_LINE_ARGS=%1

如果 ""%1""=="""" 转到 doneStart

转移

:setupArgs

如果 ""%1""=="""" 转到 doneStart

设置 CMD_LINE_ARGS=%CMD_LINE_ARGS% %1

转移

转到 setupArgs

:doneStart

rem 启动 DCS

java %OPTS% -Djava.ext.dirs=lib -Ddcs.war=war/carrot2-dcs.war org.carrot2.dcs.DcsApp

%CMD_LINE_ARGS%

这个批处理文件在http://localhost:8080设置程序(我相信它是一个 servlet)。该程序是一个类似于此处的集群引擎:http ://search.carrot2.org/stable/search 。一切似乎都正常,但我从执行批处理文件中得到以下命令提示符输出。

[信息] 开始 DCS...

[信息] 本机 LAPACK 不可用:java.library.path 中没有 nni_lapack

[信息] 本机 BLAS 不可用:java.library.path 中没有 nni_blas

[INFO] DCS 在端口启动:8080

我设法在线找到 LAPACK 和 BLAS 库,但是如何将它们添加到 java.library.path (以及如何找到 java.library.path 指向的内容)?

如果任何想帮助我的人需要一些额外的信息或澄清,请告诉我。我对 java web 开发很陌生。

0 投票
1 回答
5053 浏览

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

设置 JAR 后,我试图通过 Eclipse 运行 CHARVA 教程,但我收到了

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

在控制台中。关于如何解决这个问题的任何线索?

0 投票
0 回答
1794 浏览

java - Java 和 LD_LIBRARY_PATH

在为 Java 进程(例如 )设置本机库路径时,我遇到了一个问题,该进程是com.example.Main通过 64 位 CentOS 5 机器上的简单 bash 脚本启动的。

相关脚本代码如下:

在 中EXTRA_LD_LIBRARY_PATH,我放置了一些Main类需要的 64 位本机库。

但是,Main尽管库文件位于/opt/extra/lib64. 但是,如果我将这些相同的库文件复制到/usr/lib64,则错误消失并且代码按预期工作。(顺便说一句, env 显示LD_LIBRARY_PATH未设置,因此 /usr/lib64 显然被某些默认设置使用。)

这是正常的行为吗?

谢谢!

0 投票
2 回答
5589 浏览

java - JNotify 在 Mac OS X 上?

我想试试看文件系统变化的插件库 JNotify,但不知道如何配置它。JNotify 的网页说“java.library.path 应该指向 jnotify 附带的本机库的位置(dll,所以 dylibs 等)”。我对 Mac OS X 相当陌生,并不真正知道如何做到这一点。我正在使用 NetBeans,并希望有一种简单的方法可以将它添加到那里的路径中。我通过简单地将 jar 文件添加到项目中的 Libraries 节点并通过“import net.contentobjects.jnotify.*;”导入它来尝试它,但这没有帮助。我得到这个:

看来我还需要将本机库(我猜是 Mac 的 .so 文件)添加到同一路径中。

那么我该怎么做呢?

0 投票
0 回答
561 浏览

java - 通过 JNI 从 Java 加载 2 个 .so 本机库

我在加载 2 个库时遇到了一些问题,其中一个库在 Linux 中依赖于另一个库。假设我有 2 个库,libA.so 和 libB.so,libB.so 依赖于 libA.so(从中调用函数)。

我需要通过 JNI 从 Java 加载 libB.so 并从中调用一些本机方法。

所以我想做的是:

(两个库都驻留在 java.library.path 中)。

在 Win32 下,它工作正常 - B.dll 看到 A.dll 已经加载,并且不会尝试自己加载它(使用 PATH 查找)。

在 Linux 上,它不起作用。额外的日志显示, System.loadLibrary(A); 正确执行,并且 libA.so 加载正常,然后,当我们尝试加载 B 时,它在 LD_LIBRARY_PATH 中查找库 libA.so,但失败(两个库都在 java.library.path 中,但不在LD_LIBRARY_PATH)。

有人为什么会这样吗?它与 Linux 运行时链接的工作方式有关吗?

我看到了很多解决方法,但首先想了解它的底线。

谢谢,米哈伊尔

0 投票
2 回答
2711 浏览

java - Eclipse 中是否有与 jar 文件的“本机库位置”等效的 netbeans?

在 Eclipse 中,您可以为项目中的每个 jar 文件添加本机库位置。我更喜欢这种方法,而不是-Djava.library.path向 VM 参数添加 a 。netbeans 中是否有等价物,还是我坚持使用-D

这与这个问题有关: How to set the java.library.path from Eclipse

0 投票
1 回答
1227 浏览

jdic - JDIC 库路径

我的 java 应用程序中有以下行

webBrowser = new WebBrowser(new URL("http://java.net"));

它导致以下错误

任何想法如何纠正它