java.library.path
?我正在使用依赖于操作系统特定文件的Java库,需要找到一个.dll/
.so/
.jnilib
。但是,应用程序始终会退出,并显示一条错误消息,指出在库路径中找不到这些文件。 我想将整个项目配置为使用库路径。我试图将路径作为VM参数添加到eclipse中的某些运行配置中,但这没有用。
#1 楼
不要弄乱图书馆的路径! Eclipse会自己构建它!相反,进入项目的库设置,对于需要本机库的每个jar / etc,在Libraries选项卡中将其展开。在树视图中,每个库都有用于源代码/ javadoc和本机库位置的项。
具体来说:选择
Project
,右键单击-> Properties / Java Build Path / Libraries选项卡,选择一个.jar,展开它,选择本机库位置,单击“编辑”,将出现文件夹选择器对话框。在命令行中丢失库路径应该是您最后的努力,因为您可能破坏了已经正确的内容由eclipse设置。
评论
但是,如果要添加多个文件夹,该怎么办?
–丹
2010-6-30在11:57
这是个好问题。为什么一个罐子有多个文件夹的本机库?我敢肯定,有一种方法可以将本机库本身嵌入到jar中,所以这可能是可行的方法?
–约翰·加德纳
2010年6月30日16:00
我正在做一个我无法控制的旧项目。我当然不能更改项目结构。目前,我的解决方法是将所有内容都放在PATH中-但这不是很好。
–丹
2010年7月1日在12:03
根据操作系统的不同,您可以创建一个目录,该目录是到其他库的所有符号链接?或者至少出于开发目的,您可以将所有库复制到一个目录中。
–约翰·加德纳
2010年7月1日于16:14
我不能做这个棍子。我可以添加本机库路径,但是当我单击“确定”以完全退出然后再次跳入项目属性时,它显示为“无”。我正在使用Eclipse Indigo SR2
– bacar
2012年8月3日15:58
#2 楼
如果要将其添加为VM参数,请确保在其前面加上-D
:-Djava.library.path=blahblahblah...
评论
请参阅这篇文章:stackoverflow.com/a/2309723/510583。 -Djava.library.path =“ $ {workspace_loc:project} \ lib; $ {env_var:PATH}”
–leo
2012年1月27日7:34
#3 楼
除了批准的答案中描述的方法之外,如果您的项目中只有一个本机库,还有另一种方法。在项目属性-> Java Build Path-> Tab“ Source”中有一个源文件夹列表
对于每个条目,都有“本机库位置”,它也支持工作空间中的路径。
这将使Eclipse将其添加到您的
java.library.path
中。评论
太棒了!!!!非常感谢!!!解决了我的问题。需要将dylib添加到我的项目和一个jar中。设置本机库位置固定吧!
–ufk
13年8月22日在14:16
#4 楼
对于给定的应用程序启动,您可以按照jim所说的进行操作。如果要为整个工作空间设置它,也可以在
Window->
Preferences->
Java->
Installed JREs
每个JRE都有一个“默认VM参数”(如果为运行配置设置了任何VM参数,我相信它将被完全忽略。)
您甚至可以设置不同的JRE / JDK具有不同的参数,并且有一些项目使用一个,其他项目使用另一个。
#5 楼
您可以简单地将-Djava.library.path=yourPath
添加到eclipse.ini
中。 #6 楼
只需将*.dll
文件添加到您的c:/windows
您可以从以下代码中获取java.library.path:然后在您获取的任何路径下添加dll文件
import java.util.logging.Logger;
public class Test {
static Logger logger = Logger.getLogger(Test.class.getName());
public static void main(String[] args) {
logger.info(System.getProperty("java.library.path"));
}
}
评论
这意味着使用您的项目的每个人也都需要将它们放置在那里。
–xtofl
2011年9月1日7:16
谢谢你将DLL放入c:/ windows的想法向我证明,这只是路径问题,而不是DLL问题。
–vegemite4me
2012年10月4日在9:27
#7 楼
上面的解决方案都不适合我(带有JDK 1.7_015的Eclipse Juno)。当我将它们从project_folder / lib移到project_folder时,Java只能找到这些库。评论
什么?为什么这很重要..? O_o
–露营
2015年9月9日14:58在
#8 楼
我认为要设置java.library.path
还有另一个原因。 Subversion附带了许多库,除非可以附加java.library.path
,否则Eclipse将看不到这些库。例如,我在OS-X上,因此库位于\opt\subversion\lib
下。它们很多,我想将它们保留在原处(而不是将它们复制到标准lib目录中)。项目设置无法解决此问题。
评论
然后,我需要在哪里添加java.library.path参数?
– eLRuLL
13年7月16日在15:27
#9 楼
单击运行单击调试...
新建Java应用程序
单击“参数”选项卡
在第二个框中(VM参数)添加-D项
-Xdebug -verbose:gc -Xbootclasspath/p:jar/vbjorb.jar;jar/oracle9.jar;classes;jar/mq.jar;jar/xml4j.jar -classpath -DORBInitRef=NameService=iioploc://10.101.2.94:8092/NameService
等...
评论
另外-在运行配置中,转到“通用”选项卡,然后在项目中选择一个位置来保存运行配置。这使您可以检入该运行配置(xxxx.launch文件),以便团队中的其他人可以重复使用它。
–斯科特·斯坦奇菲尔德
09年5月5日在20:48
#10 楼
另一个解决方案是打开“运行配置”,然后在“环境”选项卡中设置对{Path,Value}。例如添加一个位于项目根目录的“ lib”目录,
Path <- ${workspace_loc:name_of_the_project}\lib
评论
但是,也许直接在“参数”选项卡中使用VM参数-Djava.library.path了吗?
–露营
2015年9月9日下午14:59
#11 楼
请记住在PATH中包含本机库文件夹。#12 楼
我使用的是Mac OS X Yosemite和Netbeans 8.02,遇到了同样的错误,我发现的简单解决方案与上面类似,当您需要在项目中包含本机库时,这很有用。 Netbeans的下一个也是如此:1.- Right click on the Project
2.- Properties
3.- Click on RUN
4.- VM Options: java -Djava.library.path="your_path"
5.- for example in my case: java -Djava.library.path=</Users/Lexynux/NetBeansProjects/NAO/libs>
6.- Ok
我希望对某人有用。
我找到解决方案的链接在这里:
java.library.path –它是什么以及如何使用
#13 楼
有时我们无法通过直接右键单击项目来获取Java构建路径。然后转到属性...。
然后单击Java构建路径
单击选项卡上添加外部jar,并提供您存储jar的计算机文件的路径。
#14 楼
这是另一个解决方法:我的构建系统(Gradle)向Eclipse的构建路径(右键单击Project-> Properties-> Java Build Path-> Libraries)添加了必需的本机库(dll)。告诉构建系统不要将本机dll库添加到Eclipse类路径中即可解决此问题。
#15 楼
您可以在Eclipse中添加vm参数。示例:
-Djava.ext.dirs=cots_lib
其中
cots_lib
是您的外部文件夹库。
评论
我通过将其添加为VM参数来完成此操作,并且它确实起作用。你到底是怎么做到的?