Client.jar

Minecraft Wiki article. Categories: Pages_using_DynamicPageList4, Java_Edition, Java_Edition_technical, Development

📌 Mirrored from Minecraft Wiki

This article is reproduced from Client.jar on the Minecraft Wiki. Mirrored from revision 3630229. It is licensed CC BY-NC-SA 3.0 by the Minecraft Wiki contributors — not under the Codex’s CC BY-SA 4.0, and it may not be used commercially. Edits belong upstream, not here.

This feature is exclusive to Java Edition.
 
client.jar
Java Edition 26.2.png: Infobox image for Minecraft program 'client.jar'
There is a related tutorial page for this topic!
 

client.jar is a JAR file containing the Minecraft program and some default resources. It is launched by the user using the Minecraft Launcher.

The client.jar file is named using the version number after download, e.g., 1.21.5.jar. The name client.jar is used on the distribution server, and commonly as a general term for all versions of the file. It is located at .minecraft/versions/version/version.jar, next to the client.json file.

It can be opened with a file archiving program that supports ZIP files.

Contents

The file contains the Minecraft program in form of compiled Java class files. It also contains some, but not all, default resources; for instance, textures from the vanilla resource pack are stored here, but sound files are stored separately.

Directory structure

The client.jar file has the following directory structure. Note that Java class files have been omitted for brevity.

  • File archive.png: Sprite image for archive in Minecraft version.jar
    • File directory.png: Sprite image for directory in Minecraft META-INF: Information for the JVM, including signature information, which may be used to check if the game is modified.
      • File file.png: Sprite image for file in Minecraft LICENSE
      • File file.png: Sprite image for file in Minecraft MANIFEST.MF
      • File file.png: Sprite image for file in Minecraft MOJANGCS.RSA
      • File file.png: Sprite image for file in Minecraft MOJANGCS.SF
    • File directory.png: Sprite image for directory in Minecraft assets: The vanilla resource pack.
      • File file.png: Sprite image for file in Minecraft .mcassetsroot: Empty file identifying the vanilla resource pack.
    • File directory.png: Sprite image for directory in Minecraft com
      • File directory.png: Sprite image for directory in Minecraft mojang
        • File directory.png: Sprite image for directory in Minecraft blaze3d
        • File directory.png: Sprite image for directory in Minecraft realmsclient
        • File directory.png: Sprite image for directory in Minecraft math
    • File directory.png: Sprite image for directory in Minecraft data: The vanilla data pack.
      • File file.png: Sprite image for file in Minecraft .mcassetsroot: Empty file identifying the vanilla data pack.
    • File directory.png: Sprite image for directory in Minecraft net
      • File directory.png: Sprite image for directory in Minecraft minecraft
        • File directory.png: Sprite image for directory in Minecraft client
        • File directory.png: Sprite image for directory in Minecraft data
        • File directory.png: Sprite image for directory in Minecraft obfuscate
        • File directory.png: Sprite image for directory in Minecraft server
        • File directory.png: Sprite image for directory in Minecraft util
    • File file.png: Sprite image for file in Minecraft flightrecorder-config.jfc
    • File file.png: Sprite image for file in Minecraft pack.png: Vanilla resource pack and data pack icon.
    • File file.png: Sprite image for file in Minecraft version.json

Blaze3D

Blaze3D is a private library that provides the graphics backend for LWJGL/OpenGL and Vulkan[1] used in the game's rendering, while also providing some low-level abstraction for OpenAL and glyph typographic information for audio control and fonts respectively.

When used for rendering, Blaze3D sets up the render system and the graphics backend, managing the program's window, GPU devices, memory buffers, view states, and other resources. When used for audio, it provides audio devices, channeling, and playback control for the game's own sound engine.

In the future, Mojang Studios plans to rework the codebase, which includes separating the game's rendering and gameplay codebase,[2] and a dedicated thread for rendering[3].

History

Java Edition Classic
mc-161607Notch started distributing the game to other people, constituting the creation of client.jar.
0.0.14a_08Signature files, MOJANG_C.SF and MOJANG_C.DSA have been added to the META-INF folder.
Java Edition Indev
0.3120091223-0040Java class files have been moved from client.jar/com/mojang/minecraft to client.jar/net/minecraft.
Java Edition Infdev
20100627Java class files are now all located in the root directory of client.jar.
Java Edition
1.2.5The signature files, MOJANG_C.SF and MOJANG_C.DSA have been moved to CODESIGN.SF and CODESIGN.RSA, respectively.
1.21.424w45aNew entry point net.minecraft.client.data.Main is present in client.jar, with similar command line structure as data generator in server.jar.
26.1snap1The Java class files in client.jar are no longer obfuscated, and are no longer located in the root directory of client.jar.
All files inside of client.jar (except for those inside the META-INF folder) now always have a last modified date of February 1, 1980. This is done by Gradle as part of its reproducable builds behavior.[4]

See also

References

  1. ↑ "Another step towards Vibrant Visuals" – Minecraft.net, February 18, 2026.
  2. ↑ "Vibrant Visuals on Java Edition" – Minecraft.net, April 16, 2025.
  3. ↑ "The road to Vibrant Visuals on Java" – Minecraft.net, October 22, 2025.
  4. ↑ ZipEntryConstants.java: L24-L39 – gradle/gradle on GitHub.

Sources