I waited...
I waited for the comments to come in after this article arrived. On my score card I got points for "language is verbose", "Desktop sucks" and "Java security is terrible". I'm quite surprised not to have got "It runs too slow" and "the VM is too big".
Despite all the revisionist history, Java got in there because it solved a whole bunch of problems that no other platform quite managed. For a start, outside of Delphi, it was just about the only 'platform' that you could get hold of. Sure you could mix up a nightmare brew of C, x-windows, sql libraries and so on, but that was so painfully vendor dependent that each and every project required a fresh start. In contrast, you could knock up a Java app with a gui that talked to the network, database and file system of your choice and not have to re-build it every time you needed to run it on a different machine or for a different client. The browser integration promised (but never delivered) that those apps would eventually be able to be delivered automagically by the internet, but even without it, software houses could deliver tools and demos and apps far more easily than they had before.
Things like the standard runtime libraries, easy dependency injection, automatic documentation generation and very consistent approach to API behaviour meant that picking up Java to do a job was an order of magnitude easier than the equivalent in just about any other language at the time. That's nothing to do with CS students or managers' preference - it was a handy tool that also happened to scratch the itch that most developers have to learn something new (which has since benefited Ruby, Python, Scala et. al.).
The Java guys have never really got UI development, and that pretty much killed off browser integration and desktop apps, despite repeated attempts like JavaFX. It's funny therefore to see Android use Java for a UI-heavy platform. (it's also probably worth mentioning that Minecraft seems to have done fairly well for a little game written in Java). Meanwhile, web development and now big data have absolutely thrived on the ability of Java to evolve into new areas.
Whilst Scala has been an interesting diversion, the small size and relatively limited resources of the development team have been a constraining factor - resulting in painfully slow tools and weirdly inconsistent core libraries. With Java 8 making useful inroads to functional styles, and the solidity of things like the collection classes, I'm not sure that the 'other JVM language' will ever get out of it's niche.
So - thank you Java. I still remember evaluating it for an early project (and having to wait for it to be delivered by post on a CD) and twenty years later, it's still relevant to my clients and still evolving into new areas. It's far from perfect, but it does a lot of jobs pretty well. Long may it continue.