2014-05-06 49 views
0

我將WindowBuilder安裝到Eclipse並創建了一個由一個類組成的程序。此類由WinowsBuilder直接生成,並且只包含一個空窗口。我可以在eclipse上運行這個程序。我將程序導出到jar文件,但是當我嘗試啓動它時拋出錯誤。錯誤表示「Java JAR」gui.jar「無法啓動。」 試圖按照本教程http://wiki.eclipse.org/FAQ_How_do_I_create_an_executable_JAR_file_for_a_stand-alone_SWT_program%3F,但它仍然無法正常工作。將SWT應用程序導出爲jar文件

更新:通過終端啓動的jar文件時,我得到了以下錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: swing2swt/layout/BorderLayout 
at java.lang.Class.getDeclaredMethods0(Native Method) 
at java.lang.Class.privateGetDeclaredMethods(Class.java:2531) 
at java.lang.Class.getMethod0(Class.java:2774) 
at java.lang.Class.getMethod(Class.java:1663) 
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494) 
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486) 
    Caused by: java.lang.ClassNotFoundException: swing2swt.layout.BorderLayout 
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) 
... 6 more 

我應該如何導出SWT應用程序作爲獨立的罐子?

+0

如果運行的jar命令行(例如'java -jar MyJar.jar'),你會得到什麼錯誤? – Baz

+0

請看更新的問題 – PauliusM

+0

好吧。顯然你的一個庫(swing2swt)不會與jar一起導出。它是否在您的類路徑中,並且您是否告訴Eclipse將其導出? – Baz

回答

1

所以,從上述評論的結論:

  • 你需要包括所有你在罐子裏導出過程中引用的庫,否則他們將不會被包含在jar文件。
  • 既然你正在運行OSX,你要麼需要使用VM參數-XstartOnFirstThread開始你的罐子時,也可以創建一個適當的OSX申請中描述herehere
相關問題