Sun controls Java
In theory, Java is a very nice technology; however, theory and practice seldom align. The problem with Java is that Sun Microsystems is the sole guardian of the the technology and quite frankly, they have ineptly managed it.
Although I am not a fan of Microsoft either, at least I trust them to remain on course with commitment to a technology and an API. I do not trust Sun. My estimation is that Sun is a Microsoft "wanabee" that doesn't know how to be. Sun then ends up floundering about while trying, and this manifests itself in their technology. For months they will publish the source and API to a technology (ie: JSTD) that inspires programmers to invest effort into extending it, and when the technology begins to gain headway the project moves up their corporate bureaucracy and ends up in their legal department that has not a clue where to go with it from there. The source code becomes no longer available and thus kills projects begun by programmers who were depending on it. Control of the technology sits in corporate for about a year, the project stagnates and eventually goes no where. Everyone who made any sort of commitment to it goes no where too.
I could go on about their dropping or changing of Java APIs such that dependent software is just left in the ditch, or their poor political miss-handlings that stunted its growth from the get go.
Alas, I don't think Sun has figured out how to make a return on their Java investment. Until that is clear and you feel cozy secure in Java's future, I would treat the whole platform with caution.