Was ist das WAR-Dateiformat?
.war (Java Web Archive) ist ein Archivformat ähnlich einer JAR Datei, das auf dem Standard-ZIP-Container aufbaut. .war-Dateien enthalten Java-Webanwendungen und serverseitige Komponenten, die auf einem Servlet-Container wie Apache Tomcat oder Jetty bereitgestellt und ausgeführt werden können. Neben kompilierten .class-Dateien kann das Archiv zusätzliche Ressourcen speichern, die auf dem Server ausgeführt werden, einschließlich .jsp-Seiten, statischem HTML und CSS. Das obligatorische Verzeichnis WEB-INF/ enthält den Deployment-Deskriptor web.xml und einen lib/-Ordner für gebündelte Abhängigkeits-.jar-Dateien.
Verwendung von .war-Dateien
Eine .war-Datei kann, wie jedes Archiv, entpackt werden, um den Quellcode und andere Ressourcen anzuzeigen - benennen Sie sie dazu in .zip um und öffnen Sie sie mit einem beliebigen Archivierungstool. Die Ausführungsumgebung erfordert jedoch, dass die Anwendung für das Deployment im .war-Format bleibt; der Servlet-Container übernimmt das Laden der Klassen und das Routing der Anfragen. Moderne Spring Boot-Projekte werden oft als eigenständiges „Fat-JAR” anstelle einer .war ausgeliefert, aber das WAR-Deployment bleibt Standard auf Jakarta EE-Servern wie WildFly und WebSphere. .war ist das Webanwendungs-Gegenstück zu .EAR-Archiven, die vollständige Unternehmensanwendungen bündeln.
Sicherheit
RISIKO: MEDIUMEine WAR enthält ausführbaren serverseitigen Code (kompilierte Servlets und gebündelte JAR-Bibliotheken). Das Deployment führt diesen Code mit den Berechtigungen des Servers aus. Installieren Sie nur WARs aus vertrauenswürdigen Quellen; eine bösartige WAR kann Web-Shells oder anfällige Abhängigkeiten enthalten. Das Inspizieren (Umbenennen in .zip) ist sicher; das Deployment ist der riskante Schritt. Halten Sie Ihren Servlet-Container und die Bibliotheken der WAR aktuell (Lieferkettenrisiko, z. B. anfällige Logging-Bibliotheken).
Formatdetails
kurz gefasst- Konqueror Web-Archiv - KDEs Konqueror konnte Webseiten (und Assets) als .war-Archiv speichern; eine seltene, veraltete KDE-Nutzung, nicht das dominante Format.
- WAR (Audio/Sample) und Spieldaten - Einige ältere Tools verwendeten .war für rohe Audio-Samples oder Spiel-Archive (z. B. bestimmte Engines); steht in keinem Zusammenhang mit dem Java-Format.
Programme zum Öffnen von WAR-Dateien
Technische Details
technische Spezifikation| Container-Format | ZIP-Archiv; Magic Bytes PK (0x50 0x4B 0x03 0x04) bei Offset 0 - identisch mit Standard-ZIP |
| Kompressionsmethode | DEFLATE pro Eintrag (ZIP-Standard); einzelne Einträge können unkomprimiert als STORED gespeichert sein |
| MIME-Typ | application/java-archive |
| Byte-Reihenfolge | Little-endian (aus der ZIP-Spezifikation übernommen) |
| Erforderliche Verzeichnisstruktur | Muss den Ordner WEB-INF/ mit dem Deployment-Deskriptor web.xml sowie die Unterverzeichnisse classes/ und lib/ enthalten |
| Kodierung | Binär |
| Typische Dateigröße | 1 MB - 300 MB; variiert je nach Anzahl der gebündelten Abhängigkeits-JARs und statischen Assets |
| Integrität / Signierung | CRC-32 pro Eintrag; optionale JAR-Codesignierung über META-INF/ .SF / .RSA Signaturdateien |
| Max. Archiveinträge | 65.535 (Standard-ZIP); die ZIP64-Erweiterung hebt dieses Limit auf |
| Deployment-Ziel | Servlet-Container und Jakarta EE Applikationsserver: Apache Tomcat, Jetty, WildFly, GlassFish, WebSphere |
| Versionsdeklaration | Servlet/Jakarta EE Spezifikationsversion im Element <web-app> der WEB-INF/web.xml; optional META-INF/MANIFEST.MF |
| Klassen-Isolierung | Jede bereitgestellte WAR erhält einen isolierten Classloader; dies verhindert Bibliothekskonflikte zwischen gemeinsam installierten Anwendungen |
| Hierarchie in Java EE | WAR ist die Webanwendungsschicht; JAR enthält Bibliotheken/Apps; EAR (Enterprise Archive) bündelt WARs und EJB-JARs zu einer Einheit |
| Plattformunterstützung | Plattformübergreifend; läuft auf jedem Betriebssystem mit einer JVM und kompatiblem Servlet-Container (Windows, Linux, macOS) |
| Hot-Deployment | Die meisten Servlet-Container unterstützen das Ersetzen einer WAR-Datei ohne vollständigen Server-Neustart (Drop-in-Deployment) |
| Veröffentlicht | 1999 (Java Servlet 2.2 / J2EE 1.2) |
| Neueste Version | Tracks Jakarta EE / Servlet spec (Jakarta Servlet 6.0, 2022); WAR layout itself is stable |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | jakarta.ee |
WAR-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu WAR-Dateien.