Hva er PACK-filformatet?
En .pack-fil er en Pack200-dataarkivbeholder som brukes til å lagre komprimerte JAR-filer for enklere nedlasting over nettverk. .pack-filer lagres vanligvis med en ekstra .gz-endelse - den standardiserte distribusjonspakken heter .jar.pack.gz og produseres av Javas kommandolinjeverktøy pack200.
En JAR er et ZIP-arkiv som også fungerer som kjørbart format for Javas virtuelle maskin. Pack200, standardisert i 2004 under JSR 200, koder om en JAR-fils «constant pools» ved hjelp av en spesialisert binær algoritme; kombinert med GZIP kan en .pack.gz-fil bli opptil 60 % mindre enn den opprinnelige JAR-filen og dermed betydelig raskere å laste ned - som var hovedmålet med formatet for Java Web Start og appletter i nettlesere.
Pack200 er nå foreldet. Oracle faset ut kommandolinjeverktøyene pack200 og unpack200 i Java 11 (JEP 336, 2018) og fjernet dem helt i Java 14 (2020). Eldre .pack- eller .pack.gz-filer kan bare dekomprimeres ved hjelp av et JDK 8-13-miljø; den rå .pack-strømmen starter med den magiske tallverdien 0xCAFED00D.
Sikkerhet og trygghet
RISIKO: MEDIUMEn .pack-fil i seg selv er inerte data, men den dekomprimeres til en Java JAR som inneholder kjørbart bytekode - pakk bare ut og kjør JAR-filer fra kilder du stoler på, siden en ondsinnet JAR kan kjøre vilkårlig kode under JRE. Pack200 var en kjent historisk angrepsflate (CVE-er i utpakkeren), så bruk en oppdatert JDK-versjon ved utpakking. Unngå tredjeparts nedlastingsportaler for «PACK-åpnere»; bruk Oracle/Adoptium JDK-er for unpack200 i stedet.
Formatdetaljer
i et nøtteskall- Git-pakkefil (.pack) - Inne i .git/objects/pack lagrer Git objekter i binære .pack-filer (med en .idx-indeks); administreres av Git, åpnes aldri manuelt.
- Minecraft / ressurspakke for spill (.pack) - Enkelte spill og mod-pakker bruker .pack for samlede ressurser eller teksturpakker; strukturen er motor-spesifikk (ofte ZIP-basert).
- Skype / app-datapakke (.pack) - Ulike applikasjoner skriver interne «.pack»-datablokker; betydningen avhenger helt av programmet.
Programmer som åpner PACK-filer
Tekniske detaljer
dyp spesifikasjon| Format-type | Binær Pack200-komprimert JAR-beholder |
| Magisk tall | 0xCAFED00D ved byte-offset 0 i den rå .pack-strømmen; GZIP-header 0x1F8B ved offset 0 i den vanlige .pack.gz-formen |
| Byterekkefølge | Big-endian |
| Komprimering | Pack200 constant-pool omkodingsalgoritme; ytre GZIP/DEFLATE brukt i standard .pack.gz-distribusjonsform |
| Komprimeringsgrad | Opptil ~60 % mindre enn tilsvarende vanlig GZIP-komprimert JAR |
| MIME-type | application/x-java-pack200 |
| Spesifikasjon | JSR 200 - Network Transfer Format for JAR Files (Java SE 5.0, introdusert 2004) |
| Maks antall arkivoppføringer | Arver JAR/ZIP-grensen på 65 535 oppføringer |
| Kryptering | Ingen; eksisterende JAR-kodesignaturer bevares og gjenopprettes av pack200/unpack200 |
| Integritetssjekk | GZIP CRC-32 på det ytre .pack.gz-laget; JAR-signaturer verifiseres uavhengig etter utpakking |
| Typisk filstørrelse | 50 KB - 20 MB (alltid mindre enn kilde-JAR-filen den koder) |
| Status | Faset ut i Java 11 (JEP 336, 2018); pack200- og unpack200-verktøy fjernet i Java 14 (2020) |
| Utpakkingsverktøy | unpack200 (kun JDK 8-13); også 7-Zip på Windows for inspeksjon |
| Hovedbruksområde | Minimering av JAR-nedlastingsstørrelse for Java Web Start-applikasjoner og appletter |
| Kompatible plattformer | Windows, Linux, macOS - alle plattformer med JDK/JRE 8-13 installert |
| Utgitt | 2004 (Java SE 5.0 / J2SE 1.5 - JSR 200 'Network Transfer Format for JAR Files') |
| Siste versjon | Pack200 as specified through JSR 200; deprecated in Java 11 (2018), removed in Java 14 (2020) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | docs.oracle.com |
PACK-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om PACK-filer.