Hinzufügen von WARs zum Java-Klassenpfad

8

Ich habe zwei Kriege, foo.war und bar.war. foo benutzt Klassen von bar. Ich versuche, foo zu starten, und füge zu Javas Klassenpfad bar.war hinzu, aber Java wirft eine ClassNotFoundException.

Wenn ich bar.war in bar.jar umbenenne und seine Verzeichnisstruktur so verarbeite, dass sie wie ein Jar aussieht, funktioniert es.

Die Java-Dokumentation auf der Option -CP erwähnt keine Kriegsdateien:

%Vor%     
ripper234 27.07.2009, 07:17
quelle

2 Antworten

15

WAR-Dateien sind ganze Web-Anwendungen, keine Bibliotheken. Sie enthalten zwar Bibliotheken, sind aber selbst Anwendungen.

Eine Webanwendung sollte nicht von einer anderen Anwendung abhängig sein. Sie können von denselben Bibliotheken abhängen, aber nicht von einander.

Entpacken Sie die allgemeine Funktionalität, erstellen Sie eine Bibliothek (als JAR-Datei), und fügen Sie diese JAR-Datei entweder in beide WAR-Dateien ein oder fügen Sie sie einem gemeinsamen Teil des Klassenpfads hinzu.

    
Jon Skeet 27.07.2009, 07:22
quelle
0

Die Struktur einer WAR-Datei unterscheidet sich sehr von einem Jar, so dass es nicht funktioniert. Die Java-Klassendateien werden im Klassenverzeichnis der WAR-Datei gespeichert, während Jar direkt die Java-Klassendateien enthält. Warum fügen Sie nicht den Ordner hinzu, in dem Sie die Java-Klassendateien von bar.war haben?

Was versuchst du zu erreichen?

    
Bhushan Bhangale 27.07.2009 07:22
quelle