2015-05-23 20 views
0

我正在開發一個圖書館(fpotencia),我使用的GUI程序(fpotenciaui)。 該庫使用commons math庫。如何修復Netbeans中的java.lang.NoClassDefFoundError?

當我運行GUI程序我得到:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/math3/complex/Complex 
    at fpotencia.Circuit.<init>(Circuit.java:101) 
    at gui.MainGUI.<init>(MainGUI.java:34) 
    at fpotenciaui.FPotenciaUI.main(FPotenciaUI.java:53) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.math3.complex.Complex 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    ... 3 more 
Java Result: 1 

我在here閱讀,這是由於在設計時庫的存在,而不是在運行時。

我也讀了here,我需要包括庫commons-logging.jarhere,我已經完成了庫和UI項目。

我希望能夠包括Netbeans所需的任何內容,因爲當我與其他人共享代碼時,我不希望他們必須執行諸如在路徑中包含庫的操作。我是電氣工程師,而且我覺得必須手工做這樣的事情非常麻煩,除此之外,爲什麼Netbeans如果必須將庫包含在命令行的路徑中呢?

所以我的問題是,爲什麼Netbeans不把這個問題排除出來,如果我明確地將該庫包含在項目中? PS:也許我誤解了這個問題,如果是這樣,我會很感激一些指導來解決這個問題。謝謝。

+0

netbeans無法找到的類是'org/apache/commons/math3/complex/Complex'。這不是一類普通的日誌記錄。這是一類公共數學。所以你需要添加一個項目庫作爲共同數學。 –

+0

是的,我已經添加了它。它不會在構建時,但在運行時抱怨。 –

+0

我假設你建立一個jarfile? jar包含在jar文件中嗎?在jar中的清單文件中應該有對該lib的引用。那裏有參考嗎?你如何開始你的罐子? Java -jar ?給我們一些更多的信息:) – chris

回答

0

好吧,基本上我發現(至少在Netbeans中)當你創建一個具有依賴關係的庫時,這些依賴關係必須包含在你想使用你創建的庫的任何其他項目中。

相關問題