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 a .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:
 * Texture files: textures used by Minecraft, all in a format. Located inside.
 * 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.
 * Language files: used to change the messages in the game (advancements, tooltips, menu). It does not affect in-game chat.
 * Text files: contain easy-to-edit text, such as splashes and the end poem.
 * The META-INF directory: contains meta information about the game files.

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