Well, Sun DOES have a couple of things in their favor... positive cash flow being one of them. Sun might give most of their products away... but the ones they DO charge for, well... dear god... they make Oracle Enterprise software look downright cheap. "Java" is only "free" when the end-user downloads and installs it himself, and the VM's authors don't charge for it. The moment you want to SELL something with Java already installed, or write a non-free implementation of it for something like a cell phone or PDA, well... let's just say you'd better have a healthy amount of cash in the bank.
It's an effective submarine strategy, because it gets people to develop things for sale under the belief that Java is "free", only to discover too late that if you want to sell some Java-based device to random soccer moms (or some other group for whom the need to download and install java themselves would be a deal-killer), you're going to have to pay Sun for the privilege of shipping your device with Java already installed. Ditto, for independent implementations of it. Anyone can write a JVM and give it away... but if you want to write a JVM and SELL it (or distribute it without source, or any other scenario that violates the SPL), you're going to have to pony up cash for Sun's share of the profits. And they won't be cheap.
The same thing goes for MySQL (now owned by Sun). It's free to download, install, and run... but if you want to write some application that needs it, and distribute it as a complete turnkey solution pre-installed on a computer, or bundled with your own application's installer... it's not cheap. In fact, it's pretty expensive. And the way the license is written, just about anything you could do to automate its download and installation for the end user is verboten. That includes having a paid consultant download and install it FOR the end user. The end user has to personally download and install it himself, or Sun is going to sue the software vendor, hardware vendor, and/or consultant for software piracy.