Minecraft Launcher

The Minecraft launcher is the login and downloader front-end to the stand-alone client. It is responsible for downloading the main Java packages, including minecraft.jar, which holds the code and resources of the game such as textures, and LWJGL. It also acts somewhat like a basic and easily bypassable copy-restriction by forcing the user to login to a paid account when running for the first time. It is possible to use the launcher to run versions of Minecraft from nearly any era, however some versions are still not included on the launcher, such as Indev, Minecraft 2.0 and any of the Beta 1.9 pre-releases. The current launcher is the sixth launcher for Minecraft, and the first that was built to automatically update itself.

Behavior
Every time the launcher is executed, it checks a specific directory where Minecraft stores its files called .minecraft. It checks a file called "launcher_profiles.json" for login credentials. If the file does not exist, is corrupt, or no user is logged in, the user must login with a valid premium account, otherwise the user will be directed to play the Demo version or purchase the game.

When logging in, the launcher will first try to verify the login. If a valid "launcher_profiles.json" file exists but there is no Internet connection, the launcher will offer a "Play offline" mode if a player was logged in when it was last closed. If the connection is successful, the launcher will then, depending on profile options, compare the latest version in the latest "versions" directory to the latest version reported by the server. If the selected version does not exist or the latest installed version is outdated when "Use latest version" is selected in the profile, the launcher will download all Minecraft components and Java binary files. It will also synchronize everything in the Assets folder (see Resource pack).

Finally, upon a successful update or installation, the launcher will execute the Minecraft jar (via "javaw.exe", Oracle's Java Virtual Machine executable.) It is possible however for there to be missing ".jar" files, in which case the launcher will attempt to replace the missing files automatically but will stop if there is no connection.

Currently, Minecraft launcher supports only English. Users cannot select their preferred language.

Launcher

 * Manage multiple profiles (stored in "launcher_profiles.json"). Each profile can control:
 * Game version. Includes access to outdated development builds and previous releases. You can also add older/custom versions manually . See this video for instructions.
 * Mojang account used to play the game
 * Command line arguments for Java (such as heap size)
 * Game Directory (where the game files are saved on disk)
 * Edit profile pictures or customizing it
 * The launcher doesn't store your password locally. Instead of this, it uses a 'refresh token'.
 * Launcher can't be open multiply, but the game can be open Multiply from single launcher.
 * Automatic updates for launcher.
 * Ability to update libraries, such as LWJGL.
 * Offline mode. (The first time launch requires an Internet connection to download required resources)
 * Currently only available in English.
 * Crashes can be reported to Mojang, through Hopper.
 * Crashes are indexed through a database for information on how to fix the issue.
 * Launcher Settings
 * Switching Accounts or logging off
 * Changing Skins
 * Downloads servers on versions
 * Help button
 * Tiny Creeper face button (when you click it, it glows but it does nothing)
 * Shows you launcher version informations when you click the launcher version.

Time Machine
The Minecraft launcher has the ability to play old Alpha and Beta versions of the game. Currently, snapshots, Alpha, Beta, and all Release versions are available to play. Four Pre-classic versions, four Classic versions, and an Infdev version are already added under the names "old-alpha version". However, Indev is still missing.

Progress *note: as of 1.10.2

To enable the old versions either click the "Launch Options" then turn the "Historical Versions" on then open your profile or make a new one, next select any of Alpha/Beta versions on the Version box then click "Save" button.

However, these versions are very out of date and may be unstable. Any bugs, glitches, missing features, or crashes that result from instability will never be resolved as only later versions are supported. Mojang strongly recommends that you play them in separate directories than your other saves to avoid corruption.

Skins
You can change or add your custom skin in Minecraft Launcher, to change or add your skin click that "Skins" button ,then click "Browse" button to put your skin picture and it must be 64x64 picture to change it, then click "Save" button to confirm your skin into the game
 * You can reset your skin to Steve/Alex by clicking "Click to reset"
 * You can choose player model by selecting two of them, choosing Classic (Steve) or Slim (Alex)

Profiles
When you open the launcher for first time, it creates you a profile that selects you lastest version of minecraft and it can't be removed.

but you can create a game profile as you want in the launcher, click on "Launch Options" button then click "Add New" to create one, then name your profile as you want but if you leaved it, it will be named "Unnamed Configuration" then select an profile picture from launcher or customizing it but it must be 128x128 PNG picture, then select versions as you want to play, then click save to confirm your profile, but if you want to edit it just click at your profile, if you want to delete it too just click your profile then click "Delete [X]" button to remove it.
 * 2016LauncherProfileSettings.jpg can also download server version by clicking "Download Server".
 * If you want to resize the game, turn "Resolution" on to change game size.
 * You can also turn "Advanced Settings" on to show more options on profiles.
 * If you want to change ".minecraft" file place, just turn "Game directory" on then click on file picture to browse files and programs to change file place, or you can open "minecraft profile by clicking at green right arrow "Go to folder" button.
 * If you turned "Snapshot Versions" on, it creates "Lastest Snapshot" profile automatically.

Command-line usage
MinecraftDev.jar (all systems):

As of the launcher released with Minecraft 1.6, there are other commands for the launcher. These are shown if you do

Trivia

 * Before beta testing on the new launcher, it was supposed to select launcher language in left front, after that it was replaced by creeper face button that does nothing, just glows