Minecraft:Java Edition client command line arguments
More actions
Template:Italic title When starting the Minecraft:Java Edition client, the Minecraft:Minecraft Launcher passes various command line arguments to the Template:Wp, such as the path to the game itself and account login information. These arguments are chosen based on the contents of the Template:Mono file corresponding to the selected version, options set in the launcher, and the current operating system.
Command line parts
The complete command line used to start the JVM consists of the following parts:
- Location of the JVM executable. Defaults either to a JVM provided by the system, or a JVM automatically downloaded by the launcher. May be changed in installation options in the launcher.
- Arguments to configure the JVM, such as Template:Code (classpath) to specify the locations of required libraries and the main Template:Mono. Generated based on Template:Code in Template:Mono.
- Additional JVM arguments specified in installation options in the launcher.
- Name of the main class. Specified as Template:Code in Template:Mono.
- Arguments to the game itself, such as Template:Code to specify the base directory for user-generated game files. Generated based on Template:Code in Template:Mono.
- Additional game arguments specified in installation options in the launcher.
JVM arguments
| Argument | Description |
|---|---|
| Template:Code | The path to the native libraries. |
| Template:Code | The absolute paths listing the game and library jars to load, separated by Template:Code on Windows or Template:Code on Linux and macOS. |
| Template:Code | The name of the launcher.Template:Info needed |
| Template:Code | The version of the launcher.Template:Info needed |
| Template:Code | Tells Java to state that it is running on Windows 10 even when it's not.Template:Info needed |
| Template:Code | Supposedly makes Intel drivers on laptops with two GPUs use the dedicated GPU.<ref>Template:Reddit</ref> |
| Template:Code | Tells the JVM to start on the first thread. Some macOS versions require this while others break with it, leaving the game stuck as "not responding". |
| Template:Code | Sets the per thread stack size to 1 MB. |
Game arguments
| Argument | Description |
|---|---|
| Template:Code | The optional base64 encoded Minecraft:UUID from Template:File in Minecraft:.minecraft used for Minecraft:telemetry. The file is generated by the launcher if it's missing. |
| Template:Code | The player's name used for offline mode.Template:Info needed |
| Template:Code | The player's UUID. |
| Template:Code | The Xbox User ID. |
| Template:Code | The authentication scheme used for logging in.
Template:Code for Minecraft:Microsoft authentication |
| Template:Code | The token generated during the login, required for joining servers. The format depends on the authentication scheme. |
| Template:Code | Switches the game to Minecraft:Demo Mode. |
| Template:Code | The name of the version. Specified in Minecraft:client.json and Minecraft:version_manifest.json under Template:Code. Shown in the Minecraft:debug screen and in crash reports. |
| Template:Code | The type of the version. Usually Template:Code, Template:Code, Template:Code or Template:Code, specified in Minecraft:client.json and Minecraft:version_manifest.json under Template:Code. Shown in the Minecraft:debug screen and in crash reports. |
| Template:Code | The folder for the instance's files. Template:File by default. |
| Template:Code | The folder that contains, among others, the Template:File folder. Template:File by default. |
| Template:Code | The JSON file for mapping internal names to indexes into the Template:File folder. Template:File by default. |
| Template:Code | The initial width of the game's window. |
| Template:Code | The initial height of the game's window. |
| Template:Code | Disables the multiplayer button. |
| Template:Code | Disables sending and receiving chat messages. |
| Template:Code | The optional path from the Minecraft:.minecraft folder to the Minecraft:quick play logs file. |
| Template:Code | The optional name of the world to automatically join once the game has started. |
| Template:Code | The optional address of a server to automatically join once the game has started. |
| Template:Code | The optional ID of a realm to automatically join once the game has started. |
Legacy arguments
| Argument | Description | Versions |
|---|---|---|
| Template:Code | An optional class implementing Template:Code that can modify other classes while the game is starting.
The vanilla tweakers are in the Template:Code package, for example Template:Code. |
presumable at least Indev to AlphaTemplate:Info needed |
| Template:Code | The session ID used to authenticate with Mojang while connecting to servers.
Defined as: Template:Code. |
unknownTemplate:Info needed |
| Template:Code | unknownTemplate:Info needed | |
| Template:Code | The same as the new Template:Code. | |
| Template:Code | The same as the new Template:Code. | 13w16a to 13w23b |
| Template:Code | The assets folder, presumably Template:File.Template:Info needed | until 13w48b |
Main class
A versions default main class is in it's Minecraft:version.json under Template:Code.
| Class | Versions | |
|---|---|---|
| Template:Code | after 1.5.2 | |
| Template:Code | Alpha 1.0.11 to 1.5.2 | new launcher |
| Template:Code | old launcher | |
| Template:Code | start of Alpha to Alpha 1.0.5_01 | launcher |
| Template:Code | Alpha | website applet |
| Template:Code | Indev and Infdev | launcher |
| Template:Code | website applet | |
| Template:Code | Classic 0.0.13a_03 to end of Classic | launcher |
| Template:Code | start of Classic to Classic 0.0.13a | |
| Template:Code | Classic | website applet |
| Template:Code | late pre-Classic | |
| Template:Code | early pre-Classic | |
Assets
The launcher downloads additional required resources and saves them to Template:File to be used by the game.
Minecraft requires several arguments when launched.
Since 1.12.2, they are defined in Minecraft:client.json under Template:Code.
Before that, the game arguments were defined in Minecraft:client.json under Template:Code while the JVM arguments were defined directly in the launcher.