Binary portability.
Everyone loves the vast multitude of free, 3rd party libraries available for Java. But what makes them particularly compelling is how easy they are to use. Almost no other free software out there is distributed in binary form. Almost all of it is in source code, save for Java.
Sure, you can get the source code for your favorite 3rd party libs and apps, but most folks go straight for the jar. Who here builds Tomcat from scratch? Unless you're a developer, there's basically no need to. (Which is a good thing, early Tomcat was a nightmare to build.) Rather, extract the zip file and fire it up -- Unix, Windows, Mac, whatever.
This portability and ease of use is a strong force in the Java world. You have a huge marketplace of users, they already "know" how to install your code with hardly a glance at the documentation. Heck, some libraries are a combination library and running application.
If we as Java coders had to build all of our software from scratch, playing "DLL Hell" that seems to permeate all of the popular platforms, we'd be doing a lot more reinvention instead of reuse, if for no other reason than to avoid the pain of getting some random library built.