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's even possible to download alpha versions, and create your own version file 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 this:
 * Texture files: Textures used by Minecraft, all in .png format.
 * Class files: Compiled Java code that Minecraft uses for program logic. These files (classes) are named like "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: Language files are used to change the messages in the game (advancements, tooltips, menu). It does not affect in-game chat.
 * Text files: Files that contain easy to edit text, such as splashes and resource pack.
 * The META-INF directory: Contains information about the game files.

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

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