Client.jar

client.jar is the main code source for Minecraft. It is located in the %appdata%/.minecraft/versions/ directory on Windows, or the ../minecraft/versions/ directory in macOS. When using the latest version of the Minecraft launcher, it is named  .jar.

It can be opened using a file archiving program or a Java decompiler.

Jar versions
The client.jar file is found in its version folder. It is accompanied by the client.json file that lists the version's attributes. Normal versions are available to choose from via the launcher, and snapshots are also available. It is also possible to download old alpha versions, and create version files to install mods on. Note that creating a new version is the only way to install mods; the launcher keeps normal versions synced.

Files in client.jar
In client.jar many files can be found; they can be categorized like so:
 * Class files: compiled Java code that Minecraft uses for program logic. These files (classes) have names such as "acq" or "qn" because they have been run through an obfuscation tool to hide the names of methods, variables and classes. However, they can still be disassembled to understand their functionality.
 * The META-INF directory: contains meta information about the game files.
 * Resource pack files: Contents that are in the vanilla resource pack, located in the assets directory.
 * .mcassetsroot : Used for identifying vanilla resources.
 * Texture files: textures used by Minecraft, all in a .png format. Located inside assets/minecraft/textures.
 * Language files: used to change the messages in the game (advancements, tooltips, menu). It does not affect in-game chat. Only en_us.json, the American English language file, is included.
 * Text files: contain easy-to-edit text, such as splashes and the end poem.


 * Data pack files: Contents that are in the vanilla data pack, located in the data directory.
 * pack.mcmeta : Metadata for both the vanilla resource and data packs. Fulfills the requirement for both resource pack and data pack metadata.
 * version.json : contains the version information of this build.

version.json structure, as found in the client and official server jars
 * The root object.
 * : The build's identifier.
 * : The build's user-friendly name.
 * : The build's release target.
 * : The data version of this build.
 * : The protocol version of this build.
 * : The resource/data pack format number of this build.
 * : The release time of this build in ISO 8601 format.
 * : Whether this version is not a snapshot version.

File hierarchy
This is the current file list as of Java Edition 1.13.2. Note that Java class files have been omitted for brevity.

Minecraft.jar Minecraft.jar Minecraft.jar Client.jar Client.jar Minecraft.jar Client.jar Minecraft.jar Client.jar