Tag: java.library.path

-Djava.library.path中的多个目录

我如何在eclipse项目中指向两个不同的java.library.path – 运行配置? 我需要这两个库: -Djava.library.path=/opt/hdf-java/build/bin -Djava.library.path=/opt/opencv-2.4.10/build/lib 问候。

System.loadLibrary不起作用。 链中的第二个lib的UnsatisfiedLinkError

我有通过JNI使用cpp共享库libclient.so的java程序Client.class。 libclient.so构建为共享并使用cpp共享库libhttp.so。 libclient.so和libhttp.so放在文件夹/home/client/lib64 Client.class放在/home/client/bin 客户端可以加载库 System.load和环境变量LD_LIBRARY_PATH System.loadLibrary和-Djava.library.path 第一种方式很好。 export LD_LIBRARY_PATH = /home/client/lib64 java -classpath ./bin客户端 secon方式失败了。 java -classpath ./bin -Djava.library.path=./../lib64 Client java.lang.UnsatisfiedLinkError: /home/client/lib64/libclient.so: libhttp.so: cannot open shared object file: No such file or directory 当我将libhttp.so放入/ usr / lib64时,第二种方式可以正常工作。 如果我使用System.loadLibrary,为什么libclient.so在/ usr / lib64中寻找libhttp.so? 如何在不将libhttp.so复制到/ usr / lib64的情况下修复它? 我的加载代码: //Try load from -Djava.library.path boolean found = false; […]

在Mac OS X上使用JNotify?

我想尝试JNotify,这是用于监视文件系统更改的插件库,但无法弄清楚如何配置它。 JNotify的网页说“java.library.path应该指向jnotify附带的本机库的位置(dll,所以dylibs等)”。 我是Mac OS X的新手,并不知道如何做到这一点。 我正在使用NetBeans,并希望有一种简单的方法将其添加到那里的路径。 我通过简单地将jar文件添加到项目中的Libraries节点并通过“import net.contentobjects.jnotify。*;”导入它来尝试它,但这没有帮助。 我明白这个: Exception in thread “main” java.lang.UnsatisfiedLinkError: no jnotify in java.library.path 我似乎还需要在同一路径中添加本机库(Mac的.so文件)。 那我该怎么做?

我可以找出当前平台上java.library.path映射到的变量吗?

到目前为止,我已经了解了有关java.library.path属性的以下内容: 它在加载本机库时使用,而不是java类 其默认值取决于操作系统: 在Windows上,它映射到PATH 在Linux上,它映射到LD_LIBRARY_PATH 在OS X上,它映射到DYLD_LIBRARY_PATH (如果我误解了上述任何一项,请纠正我) 我的动机: 我想从我设置的框架中修改Java应用程序看到的java.library.path的值,以调用Java应用程序。 我想这样做不是通过直接设置java.library.path属性,而是通过修改它映射到的系统路径变量。 我想要一个干净的方法来做这个没有丑陋的操作系统特定代码或尽可能省略边缘情况。 我的问题: 有没有办法要求本地Java实现java.library.path映射到哪个环境变量? 然后,在shell脚本中,我可以写下以下内容: path_var = get_library_path_variable # the magic function I want to call ${path_var} = /my/custom/path:${${path_var}}