2012-08-14 76 views
0

我試圖編譯一個開源的software。構建工作正常,並生成一個jar文件「five-server.jar」。當我嘗試從cmd運行此文件時,出現這些錯誤。NoClassDefFoundError org/eclipse/swt/SWTError

C:\Users\vickey\code\five-server\dist\main>java -jar five-server.jar 
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/SWTError 
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.SWTError 
     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) 
Could not find the main class: org.devtcg.five.Main. Program will exit. 

任何建議什麼是錯的?

回答

2

必須設置類路徑,以便它至少包括類org.eclipse.swt.SWTError 或包含它的jar:

java -classpath path/to/jar/containing/org.eclipse.swt.SWTError -jar five-server.jar 

你也應該設置Main-Class屬性的清單文件five-server.jar

+1

C:\用戶\ vickey \代碼\五臺服務器\ DIST \主>的java -classpath C: \ Users \ vickey \ code \ five-server \ dist \ libs \ x86 \ -j ar five-server.jar仍然給我提供了相同的錯誤:c:\ Users \ vickey \ code \ five-server \ dist \ libs \ x86 \包含swt.jar文件,在解壓縮之後,我看到SWTError類文件存在,但由於某種原因,它沒有被拾取 – 2012-08-15 16:03:53

4

SWT Jar文件是平臺相關的。 見http://www.jarfinder.com/index.php/java/info/org.eclipse.swt.SWTError

例如,在Windows上一個合適的罐子是: org.eclipse.swt.win32.win32.x86_3.1.0.jar

或在Mac OS X: SWT-MacOSX的-3.0m7.jar

等。 如果您添加了這種依賴關係,您可能會遇到各種後續問題無論你是使用32位還是64位庫的 。

實在是太糟糕了,這些類型的依賴性問題更頻繁地展示了比沒有這些天:-(