Java Application Installation Is a Nightmare
The naysayers claim that the user needs to be a Java expert to install and execute a Java application, whereas most game players want to point and click on a few dialog boxes to get a game up and running. More specific comments include the following:
Java (specifically, the JRE) has to be on the machine before the application will run.
Code bloat since even small programs require a 15 MB JRE. Downloading this can be slow.
Frequently changing JVMs make it hard to write code that will work for every possible version of Java.
Nonstandard components are often required—e.g., Java 3D, causing even more installation problems.
It's impossible to compile the application for a specific platform.
The .jar extension is commonly hijacked by other software (e.g., by compression programs) at execution time, meaning that the user can't double-click on a JAR to get it to start.
The JRE is slower to start up compared to a native compiled application.
All these problems, aside from perhaps 2 and 7, can be solved by using good installation software. I have two appendixes dedicated to installation: Appendix A is about install4j, a cross-platform tool for creating native installers for Java applications, and Appendix B is about Java Web Start (JWS), a web-enabled installer.
The code bloat comment is increasingly irrelevant, with many games weighing in at over 100 MB and many graphics and sound card drivers being made larger than 15 MB. Network speeds are a problem, ...