3 Stimmen

Welche Tipps gibt es, um den Klassenpfad in Ant zu verkürzen?

Bei der Bereitstellung meiner Anwendung auf einem Hudson Server (Windows-Maschine) habe ich Probleme beim Aufruf von java.exe, weil mein Klassenpfad zu lang ist - Windows bricht nach einer bestimmten Länge ab.

Le site classpath sind im Grunde Hunderte von Jar Dateien durch Semikolon getrennt

Nehmen wir an, dass der folgende Klassenpfad zu groß wäre, wenn jedes jar explizit im Klassenpfad aufgeführt wird:

<path id="classpath.project">
    <fileset dir="lib" includes="**/*.jar" />
</path>

Was kann ich in Ant tun, um meinen Klassenpfad zu verkürzen?

5voto

Joachim Sauer Punkte 290477

Seit Java 6 unterstützt Wildcards im Klassenpfad . Insbesondere unterstützt es die Verwendung von * um auf alle jar-Dateien in einem bestimmten Verzeichnis zu verweisen (Anmerkung: no *.jar !):

Verwendung von * da der Klassenpfad "alle jar-Dateien im aktuellen Verzeichnis" bedeutet und die Verwendung von lib/* bedeutet "alle jar-Dateien im Verzeichnis lib/ ".

Es sei denn, Sie haben Tonnen von Verzeichnissen, sollte dies ausreichend sein. Ich weiß jedoch nicht, wie ich diese Tatsache von Ant aus nutzen kann.

4voto

Angel O'Sphere Punkte 2565

Sie können nach OneJar googeln. Wenn Sie es selbst machen wollen, dann erzeugen Sie eine "leere" jar-Datei, die nur ein Manifest enthält. Fügen Sie dem Manifest eine Zeile "Class-Path: a.jar, another.jar, bla-blub.jar" hinzu, die alle benötigten Jars enthält. (Google für "manifest Class-Path") (kann mit ant gemacht werden) Unter der Voraussetzung, dass alle Jars wie üblich bereitgestellt werden, benötigen Sie jetzt nur noch Ihre "leere" Jar-Datei im Klassenpfad, da die JVM nun das Manifest verwendet, um alle anderen Jars zu finden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X