什么是LD_LIBRARY_路径以及如何使用它? 我参与开发一个java项目,使用C++的一些组件,因此我需要雅各伯.dll 。(在Windows 7上)

什么是LD_LIBRARY_路径以及如何使用它? 我参与开发一个java项目,使用C++的一些组件,因此我需要雅各伯.dll 。(在Windows 7上),java,c++,environment-variables,jacob,Java,C++,Environment Variables,Jacob,我一直得到java.lang.UnsatifiedLinkError:java.library.path中没有JacobDB无论我把Jacob.dll放在哪里 我寻找了可能的决定,到目前为止我还没有尝试过的是设置LD_LIBRARY_PATH变量,指向.dll文件 我没有什么经验,也不熟悉该变量的含义和用法-你能帮我吗?LD_LIBRARY\u PATH是Linux/Unix中预定义的环境变量,它设置链接器在链接动态库/共享库时应查看的路径 LD\u LIBRARY\u PATH包含以冒号分隔的

我一直得到
java.lang.UnsatifiedLinkError:java.library.path中没有JacobDB
无论我把Jacob.dll放在哪里

我寻找了可能的决定,到目前为止我还没有尝试过的是设置
LD_LIBRARY_PATH
变量,指向.dll文件


我没有什么经验,也不熟悉该变量的含义和用法-你能帮我吗?

LD_LIBRARY\u PATH
是Linux/Unix中预定义的环境变量,它设置链接器在链接动态库/共享库时应查看的路径


LD\u LIBRARY\u PATH
包含以冒号分隔的路径列表,链接器优先于标准库路径
/lib
/usr/lib
。标准路径仍将被搜索,但仅在
LD\u LIBRARY\u PATH
中的路径列表已用尽之后

使用
LD_LIBRARY_PATH
的最佳方法是在执行程序之前立即在命令行或脚本上设置它。这样,新的
LD_LIBRARY_路径
就与系统的其余部分隔离开来

用法示例:

$ export LD_LIBRARY_PATH="/list/of/library/paths:/another/path"
$ ./program


由于您谈论的是
.dll
您在windows系统上,
.dll
必须放置在链接器在链接时搜索的路径上,因此在windows中,此路径由环境变量
path
设置,因此,将
.dll
添加到
路径中,它应该可以正常工作。

LD\u LIBRARY\u PATH
是特定于Linux的,是一个环境变量,指向动态加载程序应该在其中查找共享库的目录


尝试在PATH变量中添加.dll所在的目录。Windows将自动查找此环境变量中列出的目录
LD_LIBRARY\u PATH
可能无法解决问题(除非JVM使用它-我不知道这一点)。

通常必须在JVM的命令行上设置
java.LIBRARY.PATH

java -Djava.library.path=/path/to/my/dll -cp /my/classpath/goes/here MainClass

好的,错误消息告诉您要做什么:将Jacob.dll所在的路径添加到java.library.path。您可以在命令行中这样做:

java -Djava.library.path="dlls" ...
(假设Jacob.dll位于“dll”文件夹中)


另请参见

我的错误还与服务未找到所需的
。因此
文件有关。 我使用
LD\u LIBRARY\u PATH
变量来设置链接器搜索所需库的路径的优先级

我将服务和
.so
文件复制到一个文件夹中,并将其作为变量馈送到
LD\u LIBRARY\u PATH

LD_LIBRARY_PATH=. ./service

在同一个文件夹中,我发出了上述命令,该命令起作用。

LD\u LIBRARY\u PATH
是默认的库路径,可以访问该路径来检查可用的动态库和共享库。它特定于linux发行版


它类似于windows中的环境变量
PATH
,链接器在链接期间检查可能的实现。

google:“java.library.PATH”。。。单击任何涉及此和dll的链接…我前面做过一个:如果您使用的是windows并且需要加载该dll,请使用“PATH”系统变量或将dll放在windows/System32目录中。LD_LIBRARY_PATH未在windows中使用。谢谢,显然它对我不起作用。否则,将项添加到PATH变量是我首先做的事情…到目前为止运气不好:)我不是Java开发人员,但您能尝试打印Java.library.PATH变量(使用System.getProperty())吗?您还可以尝试在启动VM时使用-D命令行标志设置此变量,甚至在运行时设置此变量也可以。如果您在Eclipse imho中工作,那么有一种方法可以在项目属性的构建路径设置中设置类似“本机库位置”的内容,而不是Linux!!所有Unix都使用此环境变量!而且它不是用来链接的,而是用来加载的!静态链接库通常在命令行中提供给链接器,动态加载的库通过LD_LIBRARY_路径查找。请参阅例如@Angel O'Sphere:1:动态链接器将使用此加载。第二:MacOSX使用动态库路径。当然:LD_LIBRARY_PATH不是Linux特有的,但我认为在这个问题的上下文中,这是一个小题大做。啊,顺便说一句:我写了关于加载的文章-那么你在我的评论中看到了关于链接和LD_LIBRARY_PATH的什么呢?我有一个问题,请帮助我
https://superuser.com/questions/1396481/java-application-not-picking-up-app-properties-on-widows-10
在JVM启动后,您不能以这种方式设置
java.library.path
。。。但是LD_LIBRARY_PATH是什么?请看我有问题,也请帮助我
https://superuser.com/questions/1396481/java-application-not-picking-up-app-properties-on-widows-10