2012-12-20 256 views
0

我有一個Maven項目在NetBeans各種依賴關係,讓我繪製一些3D圖表/圖形(JOGL,Gluegen & JZY3D)。這些工作,如果我跑從NetBeans中的項目,但是當我生成項目到一個JAR文件,我得到以下...從Maven項目構建依賴關係?

Exception in thread "Building 3D Scatter Plot" java.lang.UnsatisfiedLinkError: no gluegen-rt in java.library.path 
    at java.lang.ClassLoader.loadLibrary(Unknown Source) 
    at java.lang.Runtime.loadLibrary0(Unknown Source) 
    at java.lang.System.loadLibrary(Unknown Source) 
    at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:442) 

這是與Maven/NetBeans的不是所有建設JAR的問題正確的依賴或我錯過了什麼?

回答

0

在我看來,它正在尋找一個dll(gluegen-rt.dll),這應該是在Java庫路徑。

你可以添加一個DLL依賴(你需要在你的回購或Nexus手動添加):

<dependency> 
    <groupId>gluegen-rt</groupId> 
    <artifactId>gluegen-rt</artifactId> 
    <type>dll</type> 
</dependency> 
3

對於本地庫的依賴關係,庫必須位於您的PATHjava.library.path系統屬性中。您可以傳遞一個作爲參數傳遞給java程序是這樣的:java -Djava.library.path=/path/to/dir

我想你可能Netbeans的外面做的時候會丟失這部分。

+0

更新:所以,我已經搬到gluegen-rt.jar中,它的原生版本(在罐子我假定這就是它尋找),以在同一文件夾/ lib中爲我的JAR文件中的文件,然後我用下面的命令(仍然得到同樣的錯誤) 的java -Djava.library.path =/lib目錄 - jar application.jar –

+0

將你的gluegen-rt.so(或dll for windows)庫放在應用程序jar旁邊後,它不應該是'-Djava.library.path = ./ lib'。 – Swapnil

+0

試過了,仍然一無所獲:( –