The problem with it for me is, it's totally unusable for writing quick command line scripts/applications because you need to either
a) Run java -cp <classpath> <class-with-main>
b) Write a shell/batch script to do the above.
Then there's the lack of good stuff found in modern languages like first class functions.
It's not all bad though, recently I've been learning Go and the lack of generics makes me pine again for Java like a long lost love.