<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sasgaming.net/index.php?action=history&amp;feed=atom&amp;title=Minecraft%3AJava_Edition_client_command_line_arguments</id>
	<title>Minecraft:Java Edition client command line arguments - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sasgaming.net/index.php?action=history&amp;feed=atom&amp;title=Minecraft%3AJava_Edition_client_command_line_arguments"/>
	<link rel="alternate" type="text/html" href="https://wiki.sasgaming.net/index.php?title=Minecraft:Java_Edition_client_command_line_arguments&amp;action=history"/>
	<updated>2026-04-12T18:52:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.sasgaming.net/index.php?title=Minecraft:Java_Edition_client_command_line_arguments&amp;diff=89119&amp;oldid=prev</id>
		<title>SyncBot: Sync: new page from Minecraft</title>
		<link rel="alternate" type="text/html" href="https://wiki.sasgaming.net/index.php?title=Minecraft:Java_Edition_client_command_line_arguments&amp;diff=89119&amp;oldid=prev"/>
		<updated>2026-04-12T11:15:22Z</updated>

		<summary type="html">&lt;p&gt;Sync: new page from Minecraft&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;{{italic title|Java Edition}}&lt;br /&gt;
When starting the &amp;#039;&amp;#039;[[Minecraft:Java Edition]]&amp;#039;&amp;#039; [[Minecraft:client.jar|client]], the &amp;#039;&amp;#039;[[Minecraft:Minecraft Launcher]]&amp;#039;&amp;#039; passes various &amp;#039;&amp;#039;&amp;#039;command line arguments&amp;#039;&amp;#039;&amp;#039; to the {{wp|Java virtual machine}}, such as the path to the game itself and account login information. These arguments are chosen based on the contents of the {{mono|[[Minecraft:client.json]]}} file corresponding to the selected version, options set in the launcher, and the current operating system.&lt;br /&gt;
&lt;br /&gt;
== Command line parts ==&lt;br /&gt;
&lt;br /&gt;
The complete command line used to start the JVM consists of the following parts:&lt;br /&gt;
&lt;br /&gt;
* 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 [[Minecraft:Minecraft Launcher#Installations|installation options]] in the launcher.&lt;br /&gt;
* Arguments to configure the JVM, such as {{code|-cp}} (classpath) to specify the locations of required libraries and the main {{mono|client.jar}}. Generated based on {{code|arguments.jvm}} in {{mono|[[Minecraft:client.json]]}}.&lt;br /&gt;
* Additional JVM arguments specified in [[Minecraft:Minecraft Launcher#Installations|installation options]] in the launcher.&lt;br /&gt;
* Name of the main class. Specified as {{code|mainClass}} in {{mono|[[Minecraft:client.json]]}}.&lt;br /&gt;
* Arguments to the game itself, such as {{code|--gameDir}} to specify the base directory for user-generated game files. Generated based on {{code|arguments.game}} in {{mono|[[Minecraft:client.json]]}}.&lt;br /&gt;
* Additional game arguments specified in [[Minecraft:Minecraft Launcher#Installations|installation options]] in the launcher.&lt;br /&gt;
&lt;br /&gt;
== JVM arguments ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Argument&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{code|-Djava.library.path{{=}}{{ph|natives folder}}}}&lt;br /&gt;
| The path to the native libraries.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|-cp {{ph|jars}}}}&lt;br /&gt;
| The absolute paths listing the game and library jars to load, separated by {{code|;}} on Windows or {{code|:}} on Linux and macOS.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|-Dminecraft.launcher.brand{{=}}{{ph|launcher name}}}}&lt;br /&gt;
| The name of the launcher.{{info needed|What does the game use this information for?}}&lt;br /&gt;
|-&lt;br /&gt;
| {{code|-Dminecraft.launcher.version{{=}}{{ph|launcher version}}}}&lt;br /&gt;
| The version of the launcher.{{info needed|What does the game use this information for?}}&lt;br /&gt;
|-&lt;br /&gt;
| {{code|-Dos.name{{=}}Windows 10 -Dos.version{{=}}10.0}}&lt;br /&gt;
| Tells Java to state that it is running on Windows 10 even when it&amp;#039;s not.{{info needed|Why and when is this used?}}&lt;br /&gt;
|-&lt;br /&gt;
| {{code|-XX:HeapDumpPath{{=}}MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump}}&lt;br /&gt;
| Supposedly makes Intel drivers on laptops with two GPUs use the dedicated GPU.&amp;lt;ref&amp;gt;{{reddit|d8j90e|comment/f1b2anr|apparently Intel drivers on laptops with two graphics cards scan the process name for strings like &amp;quot;minecraft&amp;quot; and &amp;quot;javaw.exe&amp;quot; and switch to the dedicated GPU if it sees those names.|scratchisthebest|September 24, 2019}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{code|-XstartOnFirstThread}}&lt;br /&gt;
| Tells the JVM to start on the first thread.&amp;lt;br&amp;gt;Some macOS versions require this while others break with it, leaving the game stuck as &amp;quot;not responding&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|-Xss1M}}&lt;br /&gt;
| Sets the per thread stack size to 1 MB.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Game arguments ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Argument&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--clientId {{ph|client ID}}}}&lt;br /&gt;
| The optional base64 encoded [[Minecraft:UUID]] from {{file|file|clientId.txt}} in [[Minecraft:.minecraft]] used for [[Minecraft:telemetry]]. The file is generated by the launcher if it&amp;#039;s missing.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--username {{ph|player name}}}}&lt;br /&gt;
| The player&amp;#039;s name used for offline mode.{{info needed|Is it used in online mode?}}&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--uuid {{ph|UUID}}}}&lt;br /&gt;
| The player&amp;#039;s UUID.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--xuid {{ph|XUID}}}}&lt;br /&gt;
| The Xbox User ID.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--userType {{ph|authentication scheme}}}}&lt;br /&gt;
| The authentication scheme used for logging in.&lt;br /&gt;
{{code|msa}} for [[Minecraft:Microsoft authentication]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{code|mojang}} for [[Minecraft:Yggdrasil|Yggdrasil (Legacy Mojang authentication)]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{code|legacy}} for [[Minecraft:Legacy Minecraft authentication]]&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--accessToken {{ph|access token}}}}&lt;br /&gt;
| The token generated during the login, required for joining servers. The format depends on the authentication scheme.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--demo}}&lt;br /&gt;
| Switches the game to [[Minecraft:Demo Mode]].&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--version {{ph|version name}}}}&lt;br /&gt;
| The name of the version. Specified in [[Minecraft:client.json]] and [[Minecraft:version_manifest.json]] under {{code|id}}. Shown in the [[Minecraft:debug screen]] and in crash reports.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--versionType {{ph|version type}}}}&lt;br /&gt;
| The type of the version. Usually {{code|release}}, {{code|snapshot}}, {{code|old_beta}} or {{code|old_alpha}}, specified in [[Minecraft:client.json]] and [[Minecraft:version_manifest.json]] under {{code|type}}. Shown in the [[Minecraft:debug screen]] and in crash reports. &lt;br /&gt;
|-&lt;br /&gt;
| {{code|--gameDir {{ph|game folder}}}}&lt;br /&gt;
| The folder for the instance&amp;#039;s files. {{file|directory|[[Minecraft:.minecraft]]}} by default.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--assetsDir {{ph|assets folder}}}}&lt;br /&gt;
| The folder that contains, among others, the {{file|directory|objects}} folder. {{file|directory|[[Minecraft:.minecraft]]/assets}} by default.&lt;br /&gt;
|- &lt;br /&gt;
| {{code|--assetIndex {{ph|assets index name}}}}&lt;br /&gt;
| The JSON file for mapping internal names to indexes into the {{file|directory|assets/objects}} folder. {{file|directory|[[Minecraft:.minecraft]]/assets/indexes/{{ph|version}}.json}} by default.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--width {{ph|width}}}}&lt;br /&gt;
| The initial width of the game&amp;#039;s window.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--height {{ph|height}}}}&lt;br /&gt;
| The initial height of the game&amp;#039;s window.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--disableMultiplayer}}&lt;br /&gt;
| Disables the multiplayer button.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--disableChat}}&lt;br /&gt;
| Disables sending and receiving chat messages.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--quickPlayPath {{ph|quick play logs path}}}}&lt;br /&gt;
| The optional path from the [[Minecraft:.minecraft]] folder to the [[Minecraft:quick play]] logs file.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--quickPlaySingleplayer {{ph|world name}}}}&lt;br /&gt;
| The optional name of the world to automatically join once the game has started.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--quickPlayMultiplayer {{ph|server address}}}}&lt;br /&gt;
| The optional address of a server to automatically join once the game has started.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--quickPlayRealms {{ph|realm ID}}}}&lt;br /&gt;
| The optional ID of a realm to automatically join once the game has started.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Legacy arguments ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Argument&lt;br /&gt;
! Description&lt;br /&gt;
! Versions&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--tweakClass {{ph|tweaker class}}}}&lt;br /&gt;
| An optional class implementing {{code|net.minecraft.launchwrapper.ITweaker}} that can modify other classes while the game is starting.&lt;br /&gt;
The vanilla tweakers are in the {{code|net.minecraft.launchwrapper}} package, for example {{code|net.minecraft.launchwrapper.VanillaTweaker}}.&lt;br /&gt;
| presumable at least Indev to Alpha{{info needed|Which versions had these arguments?}}&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--session {{ph|session authentication}}}}&lt;br /&gt;
| The session ID used to authenticate with Mojang while connecting to servers.&lt;br /&gt;
Defined as: {{code|token:{{ph|access authentication token}}:{{ph|authentication UUID}}}}.&lt;br /&gt;
| rowspan=3 | unknown{{info needed|Which versions had these arguments?}}&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--userProperties {{ph|user properties}}}}&lt;br /&gt;
|  unknown{{info needed|What did it do?}}&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--server {{ph|server address}}}}&lt;br /&gt;
| The same as the new {{code|--quickPlayMultiplayer {{ph|server address}}}}.&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--workDir {{ph|game folder}}}}&lt;br /&gt;
| The same as the new {{code|--gameDir {{ph|game folder}}}}.&lt;br /&gt;
| 13w16a to 13w23b&lt;br /&gt;
|-&lt;br /&gt;
| {{code|--assetsDir {{ph|assets folder}}}}&lt;br /&gt;
| The assets folder, presumably {{file|directory|[[Minecraft:.minecraft]]/assets/virtual/legacy}}.{{info needed|How did it differ from --assetsDir?}}&lt;br /&gt;
| until 13w48b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Main class ==&lt;br /&gt;
&lt;br /&gt;
A versions default main class is in it&amp;#039;s [[Minecraft:version.json]] under {{code|mainClass}}.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Class&lt;br /&gt;
! colspan=2 | Versions&lt;br /&gt;
|-&lt;br /&gt;
| {{code|net.minecraft.client.main.Main}}&lt;br /&gt;
| colspan=2 | after 1.5.2&lt;br /&gt;
|-&lt;br /&gt;
| {{code|net.minecraft.launchwrapper.Launch}}&lt;br /&gt;
| rowspan=2 | Alpha 1.0.11 to 1.5.2&lt;br /&gt;
| new launcher&lt;br /&gt;
|-&lt;br /&gt;
| {{code|net.minecraft.client.Minecraft}}&lt;br /&gt;
| old launcher&lt;br /&gt;
|-&lt;br /&gt;
| {{code|{{ph|obfuscated}}}}&lt;br /&gt;
| start of Alpha to Alpha 1.0.5_01&lt;br /&gt;
| launcher &lt;br /&gt;
|-&lt;br /&gt;
| {{code|net.minecraft.client.MinecraftApplet}}&lt;br /&gt;
| Alpha&lt;br /&gt;
| website applet&lt;br /&gt;
|-&lt;br /&gt;
| {{code|net.minecraft.minecraft.{{ph|obfuscated}}}}&lt;br /&gt;
| rowspan=2 | Indev and Infdev&lt;br /&gt;
| launcher &lt;br /&gt;
|-&lt;br /&gt;
| {{code|net.minecraft.client.MinecraftApplet}}&lt;br /&gt;
| website applet&lt;br /&gt;
|-&lt;br /&gt;
| {{code|com.mojang.minecraft.{{ph|obfuscated}}}}&lt;br /&gt;
| Classic 0.0.13a_03 to end of Classic&lt;br /&gt;
| rowspan=2 | launcher &lt;br /&gt;
|-&lt;br /&gt;
| {{code|com.mojang.minecraft.Minecraft}}&lt;br /&gt;
| start of Classic to Classic 0.0.13a&lt;br /&gt;
|-&lt;br /&gt;
| {{code|com.mojang.minecraft.MinecraftApplet}}&lt;br /&gt;
| Classic&lt;br /&gt;
| website applet&lt;br /&gt;
|-&lt;br /&gt;
| {{code|com.mojang.minecraft.RubyDung}}&lt;br /&gt;
| colspan=2 | late pre-Classic&lt;br /&gt;
|-&lt;br /&gt;
| {{code|com.mojang.rubydung.RubyDung}}&lt;br /&gt;
| colspan=2 | early pre-Classic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Assets ==&lt;br /&gt;
{{main article|Minecraft Wiki:Projects/wiki.vg merge/Game files#Assets}}&lt;br /&gt;
&lt;br /&gt;
The launcher downloads additional required resources and saves them to {{file|directory|[[Minecraft:.minecraft]]/assets}} to be used by the game.&lt;br /&gt;
&lt;br /&gt;
Minecraft requires several arguments when launched.&lt;br /&gt;
&lt;br /&gt;
Since 1.12.2, they are defined in [[Minecraft:client.json]] under {{code|arguments}}.&lt;br /&gt;
&lt;br /&gt;
Before that, the game arguments were defined in [[Minecraft:client.json]] under {{code|minecraftArguments}} while the JVM arguments were defined directly in the launcher.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Java Edition protocol]]&lt;/div&gt;</summary>
		<author><name>SyncBot</name></author>
	</entry>
</feed>