Yes, Java is not elevated to great language status by the wealth of libraries. It gets the job done and it is possible to be productive with it, but many times you have to fight it. The language drags the libraries down in this case. In most other modern languages, I would say the libraries are what matters.
Racket has a decent repository (PLaneT) for libraries and easy ways to wrap C libraries.
Exactly. Looking from the other side, I suspect Java's much more comprehensive library caused more programmers to favour it over C++ than Java's garbage collection ever did.
I think the almost symbiotic relationship between C# and the .Net libraries today is an interesting case. It seems clear that several of the language features added to C# (or the underlying .Net execution model, if you prefer) in recent years were motivated by particular ways of working with the libraries. Usually, we see mostly one-way traffic, with standard libraries trying to paper over any cracks in the underlying language.
Racket has a decent repository (PLaneT) for libraries and easy ways to wrap C libraries.