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 used to start the Template:Wp consists of the following parts:
- Location of the JVM executable, usually provided by the system or downloaded by the launcher. Can be changed in the installation options in the launcher.
- JVM arguments generated by the launcher and partially specified in its installation options.
- Template:Code, which stands for "classpath".
- The paths to the required libraries and the Minecraft:client.jar, separated by Template:Code on Linux and macOS and with Template:Code on Windows. Generated based on Template:Code in Minecraft:client.json.
- The main class, specified as Template:Code in Minecraft:client.json.
- Game arguments generated by the launcher based on Template:Code in Minecraft:client.json.
JVM arguments
| Argument | Description |
|---|---|
| Template:Code | Sets the folder containing the library natives. Usually Template:File. |
| Template:Code | Sets the folder Template:Wp uses for temporary files. Usually Template:File. |
| Template:Code | Sets the folder containing the Template:Wp natives. Usually Template:File. |
| Template:Code | Sets the folder containing the Template:Wp natives. Usually Template:File. |
| Template:Code | Sets the name of the launcher. Included in crash reports and telemetry. |
| Template:Code | Sets the version of the launcher. Ignored by the game. |
| 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 initial memory used in bytes. |
| Template:Code | Sets the maximum memory used in bytes. |
| Template:Code | Sets the memory used for the stack in bytes. |
All byte counts can be suffixed with Template:Code for kilobytes, Template:Code for megabytes or Template:Code for gigabytes, each of which is equivalent to 1024 of the previous.
Game arguments
| Argument | Description |
|---|---|
| Template:Code | Sets the name of the version. Required to start the game. 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 | Sets 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. Defaults to Template:Code. |
| Template:Code | Sets the token generated during the login. Required to start the game. An invalid token will allow singleplayer but show any error when attempting to join a server. The format depends on the authentication scheme. |
| Template:Code | Sets the player's name used for singleplayer. Must match the name of the account for multiplayer. Defaults to Template:Code followed by the millisecond component of the current system time, which is essentially a random integer from Template:Code to Template:Code. |
| Template:Code | Sets the player's UUID. Hyphens are optional. If the access token is valid, then the UUID must match that account for both singleplayer and multiplayer. Defaults to a UUID generated from the player's name. |
| Template:Code | Sets the player's Xbox User ID. |
| Template:Code | Switches the game to Minecraft:demo mode. |
| Template:Code | Switches the game to offline developer mode. |
| Template:Code | Sets the ID included in Minecraft:telemetry. Usually the Minecraft:UUID from Template:File in Minecraft:.minecraft, encoded as base64. Defaults to not including an ID in the telemetry data. |
| Template:Code | Sets the folder for the instance's files. Usually Template:File. Defaults to the current working directory. |
| Template:Code | Sets the folder that contains, among others, the Template:File folder. Usually Template:File. Defaults to Template:File in the instance's files. |
| Template:Code | Sets the folder for resource packs. Defaults to Template:File in the instance's files. |
| Template:Code | Sets the name (without Template:Code) of the JSON file located in Template:File in the assets folder to use for mapping internal names to indexes into the Template:File folder. The index name depends on the game's version.Template:Info needed |
| Template:Code | Sets the initial width of the game's window. Defaults to Template:Code. |
| Template:Code | Sets the initial height of the game's window. Defaults to Template:Code. |
| Template:Code | Enables fullscreen. |
| Template:Code | Set fullscreen resolution to use and store in the Minecraft:options when starting the game for the first time. Must be one of the resolutions selectable with the in-game slider. |
| Template:Code | |
| Template:Code | Disables the multiplayer and realms buttons. |
| Template:Code | Disables sending and seeing public and private messages in multiplayer and worlds opened to LAN. Commands and server messages are allowed. Most servers send player messages as server messages, reimplement private messages, and sometimes even offer commands to send public messages, which mostly or entirely nullifies this argument. |
| Template:Code | Automatically joins the singleplayer world once the game has started. Defaults to the most recently played world if the folder name is omitted. |
| Template:Code | Automatically joins the server once the game has started. |
| Template:Code | Automatically joins the Realm once the game has started. |
| Template:Code | Sets the path to the file to write Quick Play logs to, relative to the instance's files. |
| Template:Code | Does nothing. It is accepted and ignored. |
| Template:Code | Names GPU calls to make them identifiable in debugging. |
| Template:Code | Detects Vulkan errors instead of ignoring them and enables render debug labels. |
| Template:Code | Sets the graphics backend of Minecraft. Must be Template:Code, Template:Code or Template:Code. Defaults to Template:Code. |
| Template:Code | Starts profiling with Template:Wp on game launch. |
| Template:Code | Starts profiling with Tracy on game launch. |
| Template:Code | Disables capturing frames to display in the timeline when debugging with Tracy. |
| Template:Code | Routes traffic through a proxy. |
| Template:Code | Sets the port of the proxy. Defaults to Template:Code. |
| Template:Code | Set the authentication for the used proxy. Required for multiplayer when using a proxy. |
| Template:Code |
Legacy arguments
| Argument | Description | Versions |
|---|---|---|
| Template:Code | The session ID used to authenticate with Mojang while connecting to servers. Defined as: Template:Code. |
Minecraft:13w16a to Minecraft:13w39b |
| Template:Code | unknownTemplate:Info needed | Minecraft:13w47a to Minecraft:25w31a |
| Template:Code | unknownTemplate:Info needed | Minecraft:1.8.1-pre1 to Minecraft:25w31a |
| Template:Code | The same as the new Template:Code. | until Minecraft:23w13a |
| Template:Code | ||
| Template:Code | The same as the new Template:Code. | Minecraft:13w16a to Minecraft:13w23b |
| Template:Code | Did nothing. It was accepted and ignored. | Minecraft:1.16-pre1 to Minecraft:21w13a |
| Template:Code | The assets folder. Presumably Template:File by default.Template:Info needed | until Minecraft:13w48b |
| Template:Code | The authentication scheme used for logging in.
Template:Code for Minecraft:Microsoft authentication |
1.7.3 to 1.21.8 |
Launch wrapper arguments
Minecraft versions 1.5.2 and prior use a wrapper class to launch the game, which has different arguments than Minecraft itself. This is so they can be properly launched by the Minecraft:Minecraft Launcher.
| Argument | Description |
|---|---|
| Template:Code | The name of the version. |
| 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 | 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. |
Main class
A version's default main class is in its Minecraft:version.json under Template:Code.
| Class | Versions | Source |
|---|---|---|
| Template:Code | after release 1.5.2 | |
| Template:Code | Minecraft:Alpha v1.0.11 through release 1.5.2 | new launcher |
| Template:Code | old launcher | |
| Template:Code | start of Alpha through Minecraft:Alpha v1.0.5_01 | launcher |
| Template:Code | Alpha | website Minecraft:applet |
| Template:Code | Indev and Infdev | launcher |
| Template:Code | website applet | |
| Template:Code | Minecraft:Classic 0.0.13a_03 through end of Classic | launcher |
| Template:Code | start of Classic through Classic 0.0.13a | |
| Template:Code | Classic | website applet |
| Template:Code | late Minecraft: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.