2013-10-23 85 views
0

我想用java,maven和swt創建一個獨立的應用程序。它建立,但是當我嘗試運行它,我得到這個Java SWT與線程「主」java.lang.NoClassDefFoundError:org/eclipse/swt/widgets/Composite的maven異常

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composite 
     at java.lang.Class.getDeclaredMethods0(Native Method) 
     at java.lang.Class.privateGetDeclaredMethods(Class.java:2521) 
     at java.lang.Class.getMethod0(Class.java:2764) 
     at java.lang.Class.getMethod(Class.java:1653) 
     at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494) 
     at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486) 
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Composite 
     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:424) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 

這是我的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>ec.com.puce.maestria.comunicacion</groupId> 
    <artifactId>fibra</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>2.3.1</version> 
       <configuration> 
        <archive> 
         <manifest> 
          <mainClass>ec.com.puce.maestria.comunicacion.principal.Fibra</mainClass> 
         </manifest> 
        </archive> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <repositories> 
     <repository> 
      <id>swt repo</id> 
      <url>http://swt-maven.googlecode.com/git-history/master/</url> 
     </repository> 
    </repositories> 
    <dependencies> 
     <dependency> 
      <groupId>org.eclipse.swt</groupId> 
      <artifactId>org.eclipse.swt.gtk.linux.x86_64</artifactId> 
      <version>4.2.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jfree</groupId> 
      <artifactId>jfreechart</artifactId> 
      <version>1.0.14</version> 
     </dependency> 
    </dependencies> 
</project> 

我需要所以它加載正確的SWT庫做別的事情與Eclipse?我需要爲JVM識別swt而做些什麼,不應該將matw包裝到我的jar或類似的東西上。

回答

0

試試這個庫:

<repositories> 
    <repository> 
     <id>swt-repo</id> 
     <url>https://swt-repo.googlecode.com/svn/repo/</url> 
    </repository> 
</repositories> 

這時,你可能有更多的運氣與dependcy:

<dependencies> 
    <dependency> 
     <groupId>org.eclipse.swt</groupId> 
     <artifactId>org.eclipse.swt.gtk.linux.x86_64</artifactId> 
     <version>4.3</version> 
    </dependency> 
</dependencies> 
相關問題