Frage

Ich versuche, Ameise zu verwenden, um eine Anwendung zu erstellen, führen Sie die Anwendung des main () Methode, laufen JUnit-Tests, und verpacken alles in einer JAR-Datei (Quelle + bauen + Bibliotheken + build.xml). Die Klassen umfassen einen Läufer-Klasse mit einer main () Methode Einstiegspunkt.

aber Ziel ist es alle Bibliotheken verwendet, um inlcude, wie junit.jar, und die Ameise build.xml selbst.

Ich habe mich gefragt, ob es einen Weg für die ausführbare JAR-Datei ist, ausgewählte Ziele der Ant-Build-Datei ausführen itslef, statt nur die Methode main (). Offensichtlich würde ich nicht die Kompilierung Ziele erneut ausführen müssen, aber nur die Methode main () (das Java-Element in meinem Laufe Ziel) und das junit Ziel. Ist das möglich?

Vielen Dank im Voraus für die Einsicht!

War es hilfreich?

Lösung

„Ausführbare jar“ ist nicht das, was Sie denken, es ist. Es ermöglicht Ihnen, packen alle Ihre Klassen zusammen (Sie Quelle es auch hinzufügen können, obwohl ich wenig Sinn, dass sehen) und eine Hauptklasse mit Main-Class-Attribut im jar-Manifest zu erklären. Details sind hier .

Sie können dann starten, die jar „java -jar my.jar“ Befehlszeile, die main() Methode der Klasse aufrufen würden Sie angegeben haben. Sie können auch angeben Classpath über Class-Path in dem Attribut Manifest-Datei, die auf andere Gläser benötigt Ihre Anwendung verweisen. Das BEDEUTET NICHT diese Gläser werden archiviert in Ihrem Glas; wenn Sie sind in der Tat, das zu tun, wird JVM nicht in der Lage sein, Klassen laden aus diesen Gläsern, wenn Sie besondere Vorsichtsmaßnahmen zu treffen sind und einen benutzerdefinierten Classloader schreiben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top