2010-12-28 10 views
4

ich ein Projekt mit Hilfe von Formularen haben, kompiliert und läuft ganz gut, aber wenn sie mit dem erzeugt Ameise zusammengestellt es nichtAnt-Build für IntelliJ IDEA-GUI bildet

meine ant-Datei hat die läuft java2 Aufgabe und ich hinzugefügt, um die benötigten Gläser meiner lib Ordner

<property name="javac2.home" value="lib/idea"/> 
    <path id="javac2.classpath"> 
    <pathelement location="${javac2.home}/javac2.jar"/> 
    <pathelement location="${javac2.home}/jdom.jar"/> 
    <pathelement location="${javac2.home}/asm.jar"/> 
    <pathelement location="${javac2.home}/asm-commons.jar"/> 
    <pathelement location="${javac2.home}/jgoodies-forms.jar"/> 
    </path> 
    <taskdef name="javac2" classname="com.intellij.ant.Javac2" classpathref="javac2.classpath"/> 
    <taskdef name="instrumentIdeaExtensions" classname="com.intellij.ant.InstrumentIdeaExtensions" classpathref="javac2.classpath"/> 

aber wenn ich mein Programm laufen bekomme ich folgende Fehlermeldung:

Exception in thread "main" java.lang.NoClassDefFoundError: com/intellij/uiDesigner/core/Spacer 
Caused by: java.lang.ClassNotFoundException: com.intellij.uiDesigner.core.Spacer 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 

Ich habe festgestellt, dass die aus der Idee kompilierte Version einige Klassen im Ausgabeordner hat (was fehlt), während die ant-generierte Version diese Klassen nicht hat.

EDIT: Ich habe die Lösung von unten umgesetzt, bedeutet dies, ich meine Ant Build geändert

den Inhalt forms_rt.jar meiner Ausgabeordner zu extrahieren
<unjar src="${javac2.home}/forms_rt.jar" dest="${webserver.output.dir}"> 
      <patternset> 
       <include name="**/*.class"/> 
      </patternset> 
</unjar> 

Antwort

6

Sie müssen forms_rt.jar von IDEA_HOME enthalten \ redist in den Klassenpfad Ihrer Anwendung, entweder über Manifest oder durch Entpacken der Klassen aus diesem Glas und Verpacken sie zusammen mit dem endgültigen Glas Ihrer Anwendung.

Wenn Sie von IDEA kompilieren, kopiert es automatisch die erforderlichen Klassen in die Ausgabe (es wird über eine Option in Einstellungen | GUI-Designer gesteuert).

+0

danke, ging mit der Auspacklösung und es funktioniert wunderbar – Ha11owed