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%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.
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?
Tags und Links dependencies java jar war classnotfound