2013-07-26 133 views
0

我試圖添加一些庫到我的項目中。當我調試應用程序一切都運行完美,但是當我編譯該項目並運行它,我得到:Eclipse jar庫[java.lang.NoClassDefFoundError]

Exception in thread "main" java.lang.NoClassDefFoundError: de/javasoft/plaf/synt 
hetica/SyntheticaSimple2DLookAndFeel 
     at pkg_main.FRM_Main.main(FRM_Main.java:56) 
Caused by: java.lang.ClassNotFoundException: de.javasoft.plaf.synthetica.Synthet 
icaSimple2DLookAndFeel 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     ... 1 more 

貌似JVM無法獲得庫。我在NetBeans中嘗試了相同的功能,並且完美地工作,所以我認爲這是Eclipse的問題。

如果有人能幫助我。提前致謝!

+0

當你說編譯/運行,這也是在Eclipse或你的意思是在Eclipse工作是調試,但是當你使用javac它不? – Thomas

+0

是的,當我調試應用程序到Eclipse中,它完美的工作,但當我編譯它(「導出> JAR文件>完成」),然後我得到[java.lang.NoClassDefFoundError]。 –

+0

導出本身失敗,或導出工作,然後在運行時失敗? – Thomas

回答

1

你正在編譯/導出成功的代碼,但是當你運行它,你從你的classpath缺少的庫。

netbeans和eclipse之間的區別很可能是,默認情況下,netbeans在導出時包含jar中的所有庫,而eclipse不包含。如果您打算將所有內容打包到一個jar文件中,請確保在從Eclipse中導出時,選擇第一個導出屏幕上的所有庫。

如果您只想導出代碼(例如,如果您希望在不重建jar的情況下切換某個庫的版本),則可以繼續僅導出代碼,但在運行時必須指定庫在classpath

java -cp "yourJar.jar;lib/*" my.package.MainClass 
+0

哦,你是對的!有用!!但是我怎樣才能正確導出,因爲我不想通過CMD執行應用程序。非常感謝你。 –

+0

我試圖檢查導出的第一個屏幕中的導出選項,但我繼續相同的問題 –

+0

最後,我得到它的工作!非常感謝你:) –

0

檢查您的類路徑中都蝕和Netbeans的,你會看到differnce,

相關問題