2011-09-06 87 views
0

我想弄清楚我的Java是否行爲不端。我該如何告訴Java在哪裏可以找到本地庫?

我已經清理,並內置在NetBeans我的Java項目,然後試着用下面的命令在命令行中運行該程序:

java -jar ProjectName.jar 

我收到以下錯誤:

The library x.dll could not be loaded by Windows. Make sure that the library is in your Path environment variable. Exception in thread "main" java.lang.ExceptionInInitializerError.

這是否意味着對於dist文件夾中的庫文件的每個項目,我需要將它包含在路徑環境變量中?這聽起來非常麻煩,我會認爲Java會足夠聰明,可以查看這些庫文件的lib文件夾。或者我需要在IDE中配置其他的東西來做到這一點?

+0

*「我原以爲java會足夠聰明的去查看這些庫文件的lib文件夾。」*什麼是'lib'文件夾?我認爲你會發現lib目錄是你的IDE的工件和它安排事物的方式。 –

+0

啊,你說得對。我正在使用NetBeans。讓我重新編輯/編輯我的問題。 –

回答

2
java -Djava.library.path=<path where dll located> -jar ProjectName.jar 
-1

當您啓動應用程序/ Java時,您需要將dll或jar包含在類路徑中。

http://download.oracle.com/javase/7/docs/technotes/tools/windows/java.html

+0

糟糕。抱歉。 DLL或罐子。 –

+0

最好提供一個鏈接到最新的JavaDocs。我會在一會兒編輯你的答案,以包括這一點。順便說一句 - 低調選民會分享他們的推理嗎? IMWTK。 –

+0

我相信反對意見是因爲回答罐子不是dll。採取的點。 –

0

無論是共享庫必須在你的PATH指定的目錄,或者你可以把它放在同一個目錄中正在執行的jar文件,並確保它是當前目錄(組如果使用快捷方式,或者如果使用腳本,在運行程序之前cd到該目錄,則「啓動」。

我還沒有在Netbeans中試過這個。 Eclipse似乎沒有辦法指向共享庫位置。

+0

刪除,因爲答案沒有解決netbeans –

+0

得到一個標誌:「我認爲這個答案應該重新打開.OP提到無法讓它在netbeans **或命令行**工作,後者是他們真的需要了解才能做出成功的部署,後者在這個答案中得到解決。「你可以重新評估嗎?謝謝。 – Will

相關問題