Platform independence.
The only thing that Java coders spend more time on than the user interface is the code in the installer that detects which variant of the JRE you're running and errors out because there are three extra characters in the canonical name of the JRE binary? Wasn't the whole point of Java to have a language that could be implemented everywhere and execute in any runtime environment that adhered to the spec?