My impression is that if Java had been here 10 years ago, then it would be the language of choice now. I think that "external factors" have contributed to it not making quite the impression it could have. It seems to me that for quite a while now, all the "major apps" have been built, there is not the same pressure to produce newer, better user tools that there was five years ago.
Being rather new to java (background of embedded assembler and C and OS programming) I have recently tried to build a prototype GUI app, using java because the language appeals to me. I looked for something like MS Visual C to help me build the GUI, and I found these five year old tools that generate code, not binary objects. Seemed clunky, and if the demand had been there, then I am sure the tools and classes would have been available.
Basically, java's timing was wrong, just a bit too late in my opinion!