I wrote about my "Java Peeves", Brett Morgan linked to some more issues, so I thought I'd add a few more logs to the fire and point to Jamie Zawinski's "Java Sucks" page, which starts off like this:
I think Java is the best language going today, which is to say, it's the marginally acceptable one among the set of complete bagbiting loser languages that we have to work with out here in the real world. Java is far, far more pleasant to work with than C or C++ or Perl or Tcl/Tk or even Emacs-Lisp. When I first started using Java, it felt like an old friend: like finally I was back using a real object system, before the blights of C (the PDP-11 assembler that thinks it's a language) and C++ (the PDP-11 assembler that thinks it's an object system) took over the world.
...and then proceeds to put the boot in. (Note, the article was written in 1997, so some things like the speed of the virtual machine, and the lack of ability to iterate over Strings and set weak references have been fixed since)