ANT : Mehrere Main in einem Projekt
-
Hallo ich habe in einem Projekt (Eclipse) mehrere Packages. In jedem Package sind bestimmt KLasse drin. Es gibt 2 Projekte, die eine Main Klasse beinhalten. Das geht auch alles wunderbar. Nun möchte ich gerne ein ANT Skript schreiben, was mir alles kompiliert und halt 2 JAR files erzeugt. Nun habe ich das Problem wenn ich für es für meine erste klasse erzeuge wird die zweite ausgeführt. Meine Klassen heißen ThreeWin und FourWin.
Hier sit auch mein ANT Skript allerdings nur mit einer Klasse. Kann mir jemand helfen.
Danke
<project name="KI"> <property name="buildDir" value="..\build"></property> <property name="buidlclassDir" value="${buildDir}\classes"></property> <property name="buildjarDir" value="${buildDir}\jar"></property> <target name="cleanBuildDirectory" description="clean and createthe build Directory"> <delete dir="${buildDir}"></delete> <delete dir="${buildjarDir}"></delete> <delete dir="${buidlclassDir}"></delete> <mkdir dir="${buildDir}"/> <mkdir dir="${buildjarDir}"/> <mkdir dir="${buidlclassDir}"/> </target> <target name="compileProject" description="compiles all java files"> <javac srcdir="." destdir="${buidlclassDir}"></javac> </target> <target name="createJarFiles" description="create for all main file a jar file"> <jar destfile="${buildjarDir}\ThreeWin.jar" basedir="${buidlclassDir}"> <manifest> <attribute name="Main-Class" value="ThreeWinWorldGui.ThreeWinFrame"/> </manifest> </jar> </target> <target name="runJarFile"> <java jar="${buildjarDir}\ThreeWin.jar" fork="true"></java> </target> </project>
-
Hallo,
ich verstehe deine Frage nicht, aber versuche es trotzdem einmal.
Jedes JAR-Archive bestizt ein Manifest. In diesem Manifest kann eine main-Methode angegeben werden. Kann und nicht muss!
In deinem Code-Beispiel geschieht das mit
<manifest> <attribute name="Main-Class" value="ThreeWinWorldGui.ThreeWinFrame"/> </manifest>
Wenn du nun dein Java-Program mit "java -jar ..." (unter Windows ggf. auch mit einem Doppelklick auf das Jar) startest, dann sucht der Loader nach dem Manifest und der dort angegebenen Main-Methode.
Mit dem Befehl "java -jar ..." kannst du auch die Main-Methode direkt angeben (siehe Doku zum Befehl "java"). Dann genügt ein Jar-Archive und evtl. zwei Batch-Skripte, die den entsprechenden Befehl absetzen.
Viel Glück.