问题标签 [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.
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)
java - 设置 java.library.path 的替代方法?
我有一个 Java 程序对本地库(“mylib.so”)进行一些 JNI 调用。每当我想从命令行运行这个程序时,我必须将 java.library.path 设置为我的库的位置,如下所示:
我想知道是否有任何替代方案,因此我不必在每次运行程序时都使用 -D 选项进行设置。
我尝试添加/var/natives/
到我的 $PATH 变量,但它仍然抱怨如果我没有使用 -D 显式设置它,它无法找到库。
我还有其他选择吗?
java - Java - Linux 上的 java.library.path 问题
我可以在我的 mac 上运行带有 cmd 行的一些依赖项的 java 程序,但是当我尝试在 linux SUSE 11 机器上运行它时,我得到了它:
这是我正在运行的 cmd 行:
任何帮助表示赞赏!
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 开发很陌生。
java - 线程“主”java.lang.UnsatisfiedLinkError 中的异常:java.library.path 中没有终端
设置 JAR 后,我试图通过 Eclipse 运行 CHARVA 教程,但我收到了
线程“主”java.lang.UnsatisfiedLinkError 中的异常:java.library.path 中没有终端
在控制台中。关于如何解决这个问题的任何线索?
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 显然被某些默认设置使用。)
这是正常的行为吗?
谢谢!
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 文件)添加到同一路径中。
那么我该怎么做呢?
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 运行时链接的工作方式有关吗?
我看到了很多解决方法,但首先想了解它的底线。
谢谢,米哈伊尔
java - Eclipse 中是否有与 jar 文件的“本机库位置”等效的 netbeans?
在 Eclipse 中,您可以为项目中的每个 jar 文件添加本机库位置。我更喜欢这种方法,而不是-Djava.library.path
向 VM 参数添加 a 。netbeans 中是否有等价物,还是我坚持使用-D
?
jdic - JDIC 库路径
我的 java 应用程序中有以下行
webBrowser = new WebBrowser(new URL("http://java.net"));
它导致以下错误
任何想法如何纠正它