2009-06-05 148 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是外部文件夾的庫。