2009-06-05 57 views
196

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

我想配置整个项目来使用库路径。我试图添加路径作为虚拟机参数在Eclipse中的一些运行配置,但没有奏效。

+1

我已经通过将它添加为VM参数来完成它,它确实工作。你究竟做了什么? – 2009-06-05 19:31:35

回答

286

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

相反,进入您项目的库设置,并且对于需要本机库的每个jar/etc,请在选项卡中展开它。在那里的树视图中,每个库都有用于source/javadoc和本机库位置的项目。

具体做法是:选择Project,右键 - >属性/Java构建路径/选项卡中,选择一个.jar,展开它,选择本地库位置,单击编辑,文件夹选择器对话框将出现)

在命令行中混淆库路径应该是你最后的努力,因为你可能会破坏已经由eclipse正确设置的东西。

Native library location

+0

好吧,这似乎工作。现在正确的路径实际显示在错误消息中。找不到所需的库:/Users/janusz/Documents/workspace/SlideSelector/lib/libOpenCV.jnilib。该文件完全位于该目录中。似乎是另一个错误 – Janusz 2009-06-08 20:39:22

+6

但是,如果你有多个文件夹添加,这是如何工作的? – Dan 2010-06-30 11:57:01

+2

这是一个很好的问题。为什么你为一个jar有多个本地库的文件夹?我很确定有一种方法可以将本地库本身嵌入到jar中,这样可能是要走的路? – 2010-06-30 16:00:51

32

如果要添加它作为一个VM参数,请确保您有-D前缀它:

-Djava.library.path=blahblahblah... 
+3

看到这篇文章:http://stackoverflow.com/a/2309723/510583。 -Djava.library.path =“$ {workspace_loc:project} \ lib; $ {env_var:PATH}” – leo 2012-01-27 07:34:17

4

单击运行
点击调试...
新的Java应用程序
点击参数标签
在第二个盒子(VM Arguments)中添加-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 

etc ...

+1

另外 - 在运行配置中,转至“Common”选项卡并在项目中选择一个位置以保存运行配置。这允许您检入该运行配置(xxxx.launch文件),以便您团队中的其他人可以重新使用它。 – 2009-06-05 20:48:14

+0

这是唯一与我合作的东西,谢谢 – 2011-03-17 21:05:08

11

对于给定的应用程序启动时,您可以根据吉姆说做到这一点。

如果你想将其设置为整个工作区,你还可以将其设置在

Window-> 
    Preferences-> 
    Java-> 
     Installed JREs 

每个JRE有一个“默认VM参数”(我相信,如果任何VM ARG游戏设定将被完全忽略对于运行配置)。

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

8

您可以简单地将-Djava.library.path=yourPath添加到eclipse.ini

6

只需将* .dll文件添加到您的c:/ windows

您可以获取java.library。从后续代码路径:然后添加任何路径下的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")); 
    } 
} 
20

除经批准的答案中描述的方式,还有另一种方式,如果你在你的项目中单独的本地库。

    在项目属性 - > Java的
  • 构建路径 - >选项卡“源”有你的源文件夹
  • 对于每个条目的名单,有“本机库位置”,这也支持了工作区中的路径。
  • 这将使Eclipse将它添加到您的java.library.path中。
5

我想有另一个想要设置java.library.path的原因。 Subversion附带有许多库,除非java.library.path可以附加,否则Eclipse将不会看到这些库。例如,我在OS-X上,因此这些库位于\ opt \ subversion \ lib下。有很多,我想保留它们在哪里(不要将它们复制到标准的lib目录中)。

项目设置不会解决这个问题。

3

另一种解决方案是打开'运行配置',然后在'环境'选项卡中设置夫妇{路径,价值}。

如用于增加位于项目的根目录的“lib”目录下,

Path <- ${workspace_loc:name_of_the_project}\lib 
5

的解决方案中没有上述工作对我来说(Eclipse的朱诺与JDK 1.7_015)。当我将它们从project_folder/lib移动到project_folder时,Java只能找到这些库。

0

有时候我们没有通过直接右键单击项目来获得Java Build Path。 然后转到属性.... Right Click and go to properties

然后单击Java构建路径上Properties Scrren

Click on add external jar

点击选项卡中添加外部JAR,并给其中u已经储存罐电脑文件的路径。

1

请记住在PATH中包含本机库文件夹。

-1

最简单的方法就是使用eclipse IDE本身。转到菜单并设置构建路径。使其指向目录中的JAVA JDK和JRE文件路径。之后,您可以检查将要设置编译文件的构建路径。在bin文件夹默认情况下。最好的事情是让Eclipse来处理自身的构建路径,并只对其进行编辑类似于上面

0

这里给出的解决方案是另一种修复:

我的编译系统(摇篮)添加所需的原生库(DLL)到Eclipse构建路径(右键单击项目 - >属性 - > Java构建路径 - >库)。告诉构建系统不要将本地dll库添加到Eclipse类路径中解决了这个问题。

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 – What is it and how to use

0

您可以在Eclipse中添加VM参数。

示例: -Djava.ext.dirs = cots_lib

其中cots_lib是外部文件夹的库。