Was ist das PACK-Dateiformat?
Eine .pack-Datei ist ein Pack200-Datenarchiv-Container, der zum Speichern komprimierter JAR-Dateien verwendet wird, um den Netzwerk-Download zu erleichtern. .pack-Dateien werden normalerweise mit einem zusätzlichen .gz-Suffix gespeichert - das Standard-Auslieferungspaket heißt .jar.pack.gz und wird mit dem Java-Befehlszeilentool pack200 erstellt.
Eine JAR-Datei ist ein ZIP-Archiv, das auch als ausführbares Format für die Java Virtual Machine dient. Pack200, das 2004 unter JSR 200 standardisiert wurde, kodiert die Constant-Pools der Class-Dateien einer JAR-Datei mit einem speziellen binären Algorithmus neu; in Kombination mit GZIP kann eine .pack.gz-Datei bis zu 60 % kleiner sein als die ursprüngliche JAR-Datei und somit deutlich schneller heruntergeladen werden - das Hauptziel des Formats für Java Web Start und die Bereitstellung von Browser-Applets.
Pack200 ist mittlerweile veraltet. Oracle hat die Befehlszeilentools pack200 und unpack200 in Java 11 (JEP 336, 2018) als veraltet markiert und in Java 14 (2020) vollständig entfernt. Ältere .pack- oder .pack.gz-Dateien können nur in einer JDK 8-13-Umgebung entpackt werden; der rohe .pack-Stream beginnt mit den Magic Bytes 0xCAFED00D.
Sicherheit
RISIKO: MEDIUMEine .pack-Datei selbst besteht aus inerten Daten, aber sie wird in eine Java JAR-Datei entpackt, die ausführbaren Bytecode enthält - entpacken und führen Sie JAR-Dateien nur aus Quellen aus, denen Sie vertrauen, da eine bösartige JAR-Datei beliebigen Code unter der JRE ausführen kann. Pack200 war eine bekannte historische Angriffsfläche (CVEs im Entpacker), verwenden Sie daher beim Entpacken einen aktuellen JDK-Build. Vermeiden Sie Download-Portale von Drittanbietern für „PACK-Opener”; nutzen Sie stattdessen Oracle/Adoptium JDKs für unpack200.
Formatdetails
kurz gefasst- Git Packfile (.pack) - Innerhalb von .git/objects/pack speichert Git Objekte in binären .pack-Dateien (mit einem .idx-Index); diese werden von Git verwaltet und nie manuell geöffnet.
- Minecraft / Spiele-Resource-Pack (.pack) - Einige Spiele und Modpacks verwenden .pack für gebündelte Ressourcen oder Texturpakete; die Struktur ist Engine-spezifisch (oft ZIP-basiert).
- Skype / App-Datenpaket (.pack) - Verschiedene Anwendungen schreiben interne „.pack”-Datenblobs; die Bedeutung hängt vollständig vom Programm ab.
Programme zum Öffnen von PACK-Dateien
Technische Details
technische Spezifikation| Format-Typ | Binärer Pack200-komprimierter JAR-Container |
| Magic Number | 0xCAFED00D bei Byte-Offset 0 im rohen .pack-Stream; GZIP-Header 0x1F8B bei Offset 0 in der üblichen .pack.gz-Form |
| Byte-Reihenfolge | Big-endian |
| Kompression | Pack200 Constant-Pool Re-Encoding-Algorithmus; zusätzliches GZIP/DEFLATE in der Standard-Lieferform .pack.gz |
| Kompressionsrate | Bis zu ~60 % kleiner als die entsprechende, nur mit GZIP komprimierte JAR-Datei |
| MIME-Typ | application/x-java-pack200 |
| Spezifikation | JSR 200 - Network Transfer Format for JAR Files (Java SE 5.0, eingeführt 2004) |
| Max. Archiveinträge | Erbt das Limit von 65.535 Einträgen von JAR/ZIP |
| Verschlüsselung | Keine; bestehende JAR-Codesignatur-Signaturen bleiben erhalten und werden durch pack200/unpack200 verlustfrei übertragen |
| Integritätsprüfung | GZIP CRC-32 auf der äußeren .pack.gz-Hülle; JAR-Signaturen werden nach dem Entpacken unabhängig verifiziert |
| Typische Dateigröße | 50 KB - 20 MB (immer kleiner als die Quell-JAR-Datei) |
| Status | Veraltet in Java 11 (JEP 336, 2018); pack200- und unpack200-Tools in Java 14 (2020) entfernt |
| Entpackungs-Tools | unpack200 (nur JDK 8-13); auch 7-Zip unter Windows zur Inspektion |
| Hauptanwendungsfall | Minimierung der JAR-Downloadgröße für Java Web Start-Anwendungen und Browser-Applets |
| Kompatible Plattformen | Windows, Linux, macOS - jede Plattform mit installiertem JDK/JRE 8-13 |
| Veröffentlicht | 2004 (Java SE 5.0 / J2SE 1.5 - JSR 200 'Network Transfer Format for JAR Files') |
| Neueste Version | Pack200 as specified through JSR 200; deprecated in Java 11 (2018), removed in Java 14 (2020) |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | docs.oracle.com |
PACK-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu PACK-Dateien.