如何从Eclipse设置java.library.path


209

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

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


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

Answers:


297

不要弄乱图书馆的路径!Eclipse自己构建!

相反,进入项目的库设置,然后针对需要本机库的每个jar / etc,在“ 库”选项卡中将其展开。在树形视图中,每个库都有用于源/ javadoc和本机库位置的项目。

具体来说:选择Project,右键单击-> Properties / Java Build Path / Libraries选项卡,选择一个.jar,展开它,选择Native library位置,单击Edit,将出现文件夹选择器对话框)

在命令行中遇到库路径应该是您最后的努力,因为您可能会破坏Eclipse已经正确设置的内容。

本机库位置


6
但是,如果要添加多个文件夹,该怎么办?

2
这是个好问题。为什么一个罐子有多个本地库文件夹?我敢肯定,有一种方法可以将本机库本身嵌入到jar中,所以这可能是要走的路?
John Gardner 2010年

1
我正在做一个我无法控制的旧项目。我当然不能更改项目结构。目前,我的解决方法是将所有内容都放在PATH中-但这并不是很好。

1
根据操作系统的不同,您可以创建一个目录,该目录是到其他库的所有符号链接?或者至少出于开发目的,您可以将所有库复制到一个目录中。
John Gardner

2
我不能做这个棍子。我可以添加本机库路径,但是当我单击“确定”以完全退出然后再次跳入项目属性时,它会显示“无”。我正在使用Eclipse Indigo SR2
bacar 2012年

37

如果要将其添加为VM参数,请确保将其前缀为 -D

-Djava.library.path=blahblahblah...

3
请参阅这篇文章:stackoverflow.com/a/2309723/510583。-Djava.library.path =“ $ {workspace_loc:project} \ lib; $ {env_var:PATH}”
leo

23

除了批准的答案中描述的方法外,如果您的项目中只有一个本机库,则还有另一种方法。

  • 在项目属性-> Java构建路径->选项卡“源”中,有一个源文件夹列表
  • 对于每个条目,都有“本机库位置”,它也支持工作空间内的路径。
  • 这将使Eclipse将其添加到您的中java.library.path

2
太棒了!!!! 非常感谢!!!解决了我的问题。需要将dylib添加到我的项目和一个jar中。设置本机库位置修复了!
ufk 2013年

11

对于给定的应用程序启动,您可以按照jim所说的进行。

如果要为整个工作空间进行设置,也可以在

Window->
  Preferences->
    Java->
      Installed JREs

每个JRE都有​​一个“默认VM参数”(我相信,如果为运行配置设置了任何VM参数,它们将被完全忽略。)

您甚至可以使用不同的参数设置不同的JRE / JDK,并让某些项目使用一个,其他项目使用另一个。


8

您可以简单地添加-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年

谢谢你 将DLL放入其中的想法c:/windows向我证明,这只是路径问题,而不是DLL问题。
vegemite4me,2012年

5

上面的解决方案都不适合我(带有JDK 1.7_015的Eclipse Juno)。当我将它们从project_folder / lib移到project_folder时,Java只能找到它们。


什么?为什么那很重要..?O_o
Campa

5

我认为还有其他理由要定下来java.library.path。Subversion附带了许多库,除非java.library.path可以附加,否则Eclipse将看不到这些库。例如,我在OS-X上,因此库位于\opt\subversion\lib。它们很多,我想将它们保留在原处(而不是将它们复制到标准lib目录中)。

项目设置无法解决此问题。


然后,我需要在哪里添加java.library.path参数?
eLRuLL 2013年

4

单击“运行”,
单击“调试”,然后单击“
新建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  

等等...


1
另外-在运行配置中,转到“通用”选项卡,然后在项目中选择一个位置来保存运行配置。这使您可以签入该运行配置(xxxx.launch文件),以便团队中的其他人可以重复使用它。
Scott Stanchfield's

3

另一个解决方案是打开“运行配置”,然后在“环境”选项卡中设置对{Path,Value}。

例如,要在项目的根目录中添加一个“ lib”目录,

    Path  <-  ${workspace_loc:name_of_the_project}\lib

但是也许直接-Djava.library.path在“ 参数”选项卡中使用VM参数?
Campa 2015年


1

我使用的是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 –它是什么以及如何使用


0

有时我们无法通过直接右键单击项目来获取Java Build Path。然后去属性...。右键单击并转到属性

然后单击Java构建路径物业物业

点击添加外部罐子

单击选项卡上的添加外部jar,并提供您存储jar的计算机文件的路径。


0

这是另一个解决方法:

我的构建系统(Gradle)向Eclipse的构建路径(右键单击Project-> Properties-> Java Build Path-> Libraries)添加了必需的本机库(dll)。告诉构建系统不要将本机dll库添加到Eclipse类路径中可以解决此问题。



-1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.