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 and LWJGL, which holds the code and resources of the game such as textures. It also acts somewhat like a basic and easily bypassable (alternative launcher) copy-restriction by forcing the user to login to a paid account when running for the first time. It has been part of the stand-alone client since its inception. It is possible to use the launcher to run versions of Minecraft since Indev.

There have been four different development stages for the launcher, the first for the Indev version, the second since the release of Minecraft 1.0, the third since 1.2, and the fourth and current 1.6 Dev Launcher.

Behavior
Every time the launcher is executed, it checks a specific directory where Minecraft stores its files called .minecraft. It checks a file called "lastlogin" for login credentials. If the file does not exist or is corrupt the user must login with a valid premium account, otherwise the game will refuse to run.

When logging in, the launcher will first try to verify the login. If a valid "lastlogin" file exists but there is no internet connection, the launcher will offer a "Play offline" mode, allowing the user to play regardless. If the connection is successful, the launcher will then compare the "version" file in the "bin" directory to the latest version reported by the server. If the file does not exist or the installed version is outdated, the launcher will download all Minecraft components and Java binary files.

Finally, upon a successful update or installation, the launcher will execute "minecraft.jar". It is possible however for there to be a valid and up-to-date "version" file but missing ".jar" files, in which case the launcher will hang.

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

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

minecraft.exe (Windows executable):

minecraft.jar (Windows - no CMD window):

As of the new launcher released with Minecraft 1.2.3, username and password options use a prefix.

""

If using a server:port it must still be the 3rd option. So if not used with username and password, dummy options need to be added in their place.

No update option also added.

""

1.6 Dev Launcher


A new version of the launcher was released on April 18, 2013 (with snapshot 13w16a). It lets users choose the version they want to play, downloads all resources before launching the game and updates additional libraries (function previously unavailable). Later it will have more functionality as it currently is in its early development stage. Currently there is no demo for non-premium users. The launcher can automatically update itself; the most recent version is 1.0.

Features

 * Manage multiple profiles. Each profile can have a different version, Mojang account, command line arguments for Java (such as heap size), and so on.
 * You can also add older versions manually.
 * The launcher doesn't store your password locally. Instead of this, it now uses a 'refresh token'.
 * 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)


 * Unable to launch demo mode from launcher.
 * There will be only English version. Unable to localize launcher.

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