I think Java still has a lot of things going for it, and my most favorite aspect is the documentation. I never spent a dime on Java books because there is so much excellent documentation available online (starting with the Java Tutorial for beginners). Compare that to Ruby, where you can't even get a specification of the current state of the language for free.
Also it seems most of the new developments in IT are being developed for Java first these days, like Aspect Oriented Programming, Dependency Injection and whatever (granted, maybe some of these things would be superfluous in other languages to begin with, I don't know). You get a really good IDE for free (Eclipse), and new add-ons and frameworks for Java are almost forced to also provide plugins for the IDE to work with. For LISP you are still supposed to use Emacs. What do you use for Ruby on Rails?
That said, it seems to me the problem with Java is not the language but the people using it. There is a lot of overengineering going on, that just isn't fun anymore. Many people (especially the bosses in the large corporations) have become dogmatic about certain ways to design applications, that are often inappropriate (in my opinion).
I also long for a faster way to prototype, and I am putting a lot of hopes on Groovy+Grails or even Ruby. But I have the impression that many people who bash Java don't really know it.