Java has been around long enough that it really exists pretty much independent of Sun/Oracle. A large part of this is due to the massive open-source auxiliary infrastructure coming from places like apache/jakarta, SpringSource,
JBoss, ObjectWeb, the OSGi folks and more other places than I can count. As I've said before, Sun/Solaris/Java and Microsoft/Windows/.Net are a lot alike, but Microsoft can (and has!) wrench around platforms like .Net and the developer community has had no choice but to suck it up, spend tons of time/money/effort re-engineering stuff, and go on. Try that with Java and you'll probably end up talking to yourself in an empty room. Microsoft OWNs .Net, but for more than a decade now, Sun has basically only ADMINISTERED Java.
Of course, this could get eroded over years, but Oracle's contributions to the Java world haven't generally been earth-shaking so far. Mostly just small stuff, like their
JSF kit, whose name escapes me, but exists in open-source form in the Apache MyFaces Trinidad project. So for quite a while at least, I expect that the actual ownership of the Java standard isn't going to make much difference.
A much bigger threat to Java is the proliferation of scripting platforms, including some that actually run off the JVM itself. This isn't a matter of vendors, but of mindset.
Unfortunately, the attitude of modern-day business is all about "Git 'R Dun!:" Scripting languages give the illusion of productivity, because you don't have to go through lengthy compile/design phases. You can just sit down and code and screens start popping up. However, like a lot of modern-day business, the costing formula is incomplete. Just as a certain large oil company has discovered that the statistical hidden cost of "Git 'R Dun!" drilling can pop up and bite you, scripting languages can fail in a lot more ways than their "less productive" relatives, and can fail expensively, at that.
You
can craft a disaster on any platform and in any language. Last month I sent in 3 paper checks to pay bills to companies whose online payment systems were for all practical purposes unusable. And we're talking systems directly providing their
income! One of which is a Fortune 10 Company! I suspect I'm about to get dinged by another world-famous corporation whose systems are so badly botched up that not only the online components are non-functional, but they can't even handle paper transactions. I haven't used their product in months and don't plan to every again, but it's too much to hope that they did like in the old days, wrote it off and closed the account. No, I expect them to bill me for all the months they didn't present statements, then add in penalties for not paying the bills they didn't present. Hooray!
Java won't solve problems like this, which are ultimately management failures, but its more deliberate development cycle, its greater up-front error checking, and its designed-in security mean that there's still a compelling need for it, at least until someone comes up with something better.
I like instant gratification as much as anyone, but I also like to sleep nights. Which is why I still work with Java on the mission-critical apps instead of scripting languages. And right now, I'm particularly annoyed with JavaScript, as I inherited a real mess done in JavaScript. I spent all day long the last 2 days hacking JavaScript. And by hacking, I mean exactly what's written below.