.PACK

PACK File

Java Pack200 Compressed JAR File
Ask a question
QUICK ANSWER

A .pack file is most often a Java Pack200 archive - a compressed form of a JAR file created by the Pack200 tool, usually distributed as a .jar.pack.gz. To use it, run unpack200 app.pack app.jar with a JDK version 8 through 13 (the tool was removed in Java 14). The .pack extension is also used by Git packfiles and game resource packs, which are unrelated.

Developer: Sun Microsystems / Oracle (Java Platform) Category: Encoded Files Open standard MIME: application/x-java-pack200
OPENS ON Windows macOS Linux
Related: .CRYPT · .SDOC · .AXX · .REM

On this page

19k+ extensions indexed
Last reviewed Jun 16, 2026

Not sure what your file is?

Drop any file into our identifier - we read just the first bytes to name the format.

Identify a file

What is the PACK file format?

A .pack file is a Pack200 data archive container used for storing compressed JAR files for easier network download. .pack files are typically saved with an additional .gz suffix - the standard delivery bundle is named .jar.pack.gz and produced by Java's pack200 command-line tool.

A JAR is a ZIP archive that also serves as the executable format for the Java virtual machine. Pack200, standardised in 2004 under JSR 200, re-encodes a JAR's class-file constant pools using a specialised binary algorithm; combined with GZIP, a .pack.gz file can be up to 60% smaller than the original JAR and hence significantly faster to download - the primary goal of the format for Java Web Start and browser applet delivery.

Pack200 is now obsolete. Oracle deprecated the pack200 and unpack200 command-line tools in Java 11 (JEP 336, 2018) and removed them entirely in Java 14 (2020). Legacy .pack or .pack.gz files can only be decompressed using a JDK 8-13 environment; the raw .pack stream begins with the magic number 0xCAFED00D.

Security & safety

RISK: MEDIUM

A .pack itself is inert data, but it decompresses to a Java JAR containing executable bytecode - only unpack and run JARs from sources you trust, since a malicious JAR can run arbitrary code under the JRE. Pack200 was a known historical attack surface (CVEs in the unpacker), so use a current JDK build when unpacking. Avoid third-party "PACK opener" download portals; use Oracle/Adoptium JDKs for unpack200 instead.

Format details

in a nutshell
FULL NAMEJava Pack200 Compressed JAR Fileaka Pack200 archive, Java packed JAR
DEVELOPERSun Microsystems / Oracle (Java Platform)since 2004 (Java SE 5.0 / J2SE 1.5 - JSR 200 'Network Transfer Format for JAR Files')
MIME TYPEapplication/x-java-pack200
TYPECompressed-JAR container produced by the Java Pack200 utility (binary)
STANDARDOpen · royalty-free
This extension is also used by…
  • Git packfile (.pack) - Inside .git/objects/pack, Git stores objects in binary .pack files (with a .idx index); managed by Git, never opened by hand.
  • Minecraft / game resource pack (.pack) - Some games and modpacks use .pack for bundled resources or texture packs; structure is engine-specific (often ZIP-based).
  • Skype / app data pack (.pack) - Various applications write internal '.pack' data blobs; meaning depends entirely on the program.
MAGIC BYTES · FILE SIGNATURE
OFFSET
00010203
HEX
CAFED00D
ASCII
····
A raw Pack200 stream begins with the magic 0xCAFED00D (a play on Java's class-file magic 0xCAFEBABE). In practice the stream is almost always GZIP-compressed and shipped as ".pack.gz" - that file starts with the GZIP signature 1F 8B at offset 0, with the CAFED00D appearing only after decompression. The plain ".pack" form (no GZIP) shows CAFED00D directly.

Programs that open PACK files

Windows3 apps
7-Zip Open-source Opens the outer GZIP of a .pack.gz (giving the raw .pack stream); the Pack200 layer still needs unpack200 to become a JAR.
unpack200 (JDK 8-13) Free Run: unpack200 app.pack app.jar (decompress .pack.gz first if needed). Tool exists only in JDK 8 through 13.
Adoptium Temurin JDK 8/11 Open-source Install a free OpenJDK 8 or 11 that still includes unpack200, then run unpack200 on the file.
macOS1 app
unpack200 (JDK 8-13) Open-source Install Temurin JDK 8/11 and run unpack200 app.pack app.jar in Terminal.
Linux2 apps
unpack200 (OpenJDK 8-13) Open-source unpack200 app.pack app.jar - packaged with OpenJDK 8/11 (e.g. apt install openjdk-11-jdk-headless).
Java Web Start (IcedTea-Web) Open-source Open-source Web Start replacement that still handles Pack200-compressed JNLP resources.

Technical details

deep spec
Format typeBinary Pack200 compressed-JAR container
Magic number0xCAFED00D at byte offset 0 in the raw .pack stream; GZIP header 0x1F8B at offset 0 in the common .pack.gz form
Byte orderBig-endian
CompressionPack200 constant-pool re-encoding algorithm; outer GZIP/DEFLATE applied in the standard .pack.gz delivery form
Compression ratioUp to ~60% smaller than the equivalent plain-GZIP-compressed JAR
MIME typeapplication/x-java-pack200
SpecificationJSR 200 - Network Transfer Format for JAR Files (Java SE 5.0, introduced 2004)
Max archive entriesInherits the JAR/ZIP 65,535-entry ceiling
EncryptionNone; existing JAR code-signing signatures are preserved and round-tripped by pack200/unpack200
Integrity checkingGZIP CRC-32 on the .pack.gz outer wrapper; JAR signatures verified independently after unpacking
Typical file size50 KB - 20 MB (always smaller than the source JAR it encodes)
StatusDeprecated in Java 11 (JEP 336, 2018); pack200 and unpack200 tools removed in Java 14 (2020)
Unpack toolsunpack200 (JDK 8-13 only); also 7-Zip on Windows for inspection
Primary use caseMinimising JAR download size for Java Web Start applications and browser applets
Compatible platformsWindows, Linux, macOS - any platform with JDK/JRE 8-13 installed
Released2004 (Java SE 5.0 / J2SE 1.5 - JSR 200 'Network Transfer Format for JAR Files')
Latest versionPack200 as specified through JSR 200; deprecated in Java 11 (2018), removed in Java 14 (2020)
Open standardYes · royalty-free
Specificationdocs.oracle.com

PACK conversions

Community Q&A

asked by users
Ask a quick question
Get help from people who work with PACK files. Be specific - include your system and software version.
No account needed · answers usually within a day

No questions yet - be the first to ask about PACK files.

Frequently asked questions

How do I open a Java .pack file?
Decompress it back to a JAR with unpack200 from a JDK version 8 through 13: 'unpack200 app.pack app.jar'. If it's a .pack.gz, GZIP-decompress first (or point unpack200 at the .gz).
Why doesn't unpack200 exist on my computer?
Oracle removed pack200/unpack200 in Java 14 (2020). Install an older JDK (8 or 11, e.g. Adoptium Temurin) that still includes the tool.
What is a .jar.pack.gz file?
It's a JAR that was Pack200-compressed and then GZIP-compressed - the standard distributed form. Unpack it with unpack200 to get the original .jar back.
Is .pack always a Java file?
No. The extension is also used by Git (binary packfiles in .git/objects/pack) and by game resource packs. Check the context - a Java Pack200 stream begins with 0xCAFED00D.
Can I just rename .pack to .jar?
No - Pack200 is a different encoding, not a ZIP. You must run unpack200 to turn it into a real JAR; renaming won't work.

References

1Oracle - pack200/unpack200 tool docsdocs.oracle.com
2JEP 336 - Deprecate the Pack200 Tools and APIopenjdk.org

Keep exploring

across the database

Top extensions this week

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.EXEWindows Executable (Portable Executable)
5.M4AMPEG-4 Audio File
6.DATProgram Data File (generic)
7.MDMarkdown Document
8.JSONJavaScript Object Notation file
9.NOMEDIAAndroid No-Media Marker File
10.JPGJPEG Image

Related extensions

.CRYPTWhatsApp Encrypted Message Database Backup
.SDOCOracle IRM Sealed Word Document
.AXXAxCrypt Encrypted File
.REMBlackBerry Encrypted Media Card File
.DLCDownload Link Container
.SECPGP Secret Key Ring File

Free file tools

An in-browser file identifier and image converter - everything runs on your device.

Open the toolbox

Browse file extensions A-Z