Minecraft Launcher

The Minecraft launcher is the login and downloader frontend to the stand-alone client. It is responsible for downloading the main java packages, including minecraft.jar, which hold the code and resources of the game such as textures. It also acts somewhat like a basic copy-protection 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.

Behavior
Every time the launcher is executed, it checks the a specific directory where Minecraft stores its files called. 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.

Upcoming Launcher
A new version of the launcher is currently in development. It will predominantly feature a front page that will display news updates about Minecraft as well as links to official websites, communities and twitter feeds. It will also give users control over updates by prompting to update to the latest version instead of automatically doing so. A directory picker for world saves is also planned.