如何为整个Eclipse项目设置java.library.path?我正在使用依赖于操作系统特定文件的Java库,需要找到一个.dll/ .so/ .jnilib。但是,应用程序始终会退出,并显示一条错误消息,指出在库路径中找不到这些文件。

我想将整个项目配置为使用库路径。我试图将路径作为VM参数添加到eclipse中的某些运行配置中,但这没有用。

评论

我通过将其添加为VM参数来完成此操作,并且它确实起作用。你到底是怎么做到的?

#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是您的外部文件夹库。

#16 楼

最简单的方法是使用Eclipse IDE本身。转到菜单并设置构建路径。使其指向目录中的JAVA JDK和JRE文件路径。之后,您可以检查要在其中设置编译文件的构建路径。默认情况下,在bin文件夹中。最好的办法是让eclipse自己处理构建路径,并仅像上面给出的解决方案一样对其进行编辑