Sun started Java as a simple programming language for appliances, like coffee makers- they called it "oak".
they licensed out the ability to write Virtual Machines, however, so as to allow for it to proliferate through different operating systems. IBM make a few crappy essentially useless versions of a JVM, but in their defense they have the- err- Most usable version for Windows 3.1, if that counts for anything.
Microsoft got a license to create the JVM and no sooner did they get it did they start bastardizing it, with J++. Warranted the changes were "good" for windows developers, they completely broke compatibility with other OS's. So Sun revoked their java license- and now Sun itself is the sole proprietor of the JDK and the runtimes.
The only neat feature that didn't break compatiblity was the ability for other applications to create java objects through COM. I thought it was neat that I could do a 'CreateObject("Java.Lang.String")' in VB and get a usable object.
http://java.sun.com/features/1998/05/birthday.html