Updated: Oracle and Apple Announce OpenJDK Project for Mac OS X
As we reported in October Apple’s next release of OS X deprecates the version of Java that it ports and supplies as part of OS X. According to the MacRumours site one concerned developer emailed Steve Jobs asking about Apple's future plans for the Java programming language and platform on Mac OS X. Jobs' reply was:
Sun (now Oracle) supplies Java for all other platforms. They have their own release schedules, which are almost always different than ours, so the Java we ship is always a version behind. This may not be the best way to do it.
Apple have now announced that they will be working with Oracle on a Java SE 7 version for OS X via the OpenJDK project. According to the press release
Apple will contribute most of the key components, tools and technology required for a Java SE 7 implementation on Mac OS X, including a 32-bit and 64-bit HotSpot-based Java virtual machine, class libraries, a networking stack and the foundation for a new graphical client. OpenJDK will make Apple’s Java technology available to open source developers so they can access and contribute to the effort.
Apple have also confirmed that Java SE 6 will continue to be available from Apple for Mac OS X Snow Leopard® and the upcoming release of Mac OS X Lion. Java SE 7 and future versions of Java for Mac OS X will be available from Oracle.
Given that Java SE 7 is quite close to shipping it is unlikely that Java 7 for OS X will be released at the same time as for the other supported platforms, a point which Henrik Ståhl, who is responsible for product strategy in the Java Platform Group, has made on his blog
My expectation is that we will release on current supported platforms first, and that OSX support will follow later. The JDK 7 schedule can not easily accommodate large changes like the addition of a new platform
Since this story was first published Apple Java Engineering team member Mike Swingler has revealed more details about what is included
To set expectations, the first drop will be effectively a "SoyLatte"-level implementation, but is packaged as a Universal Mac OS X .jdk bundle that can be dropped directly into /Library/Java/JavaVirtualMachines. Over the coming weeks and months, we will be adding pieces and parts of our Java SE 6 implementation to the public project, and will cut over from using an X11-based AWT to a Cocoa NSEvent-based one with a new OpenGL-backed graphics layer.
There are several parts of our Java SE 6 implementation (like the AWT widgets) that are not contributable, in much the same way that several parts of Oracle's implementation are not. However, the vast majority of our Swing Aqua Look and Feel implementation is, as well as the eAWT/eIO API. We intend to host the legacy AWT widget set using lightweight peers, but that work is still in progress.
This is excellent news for the many Java developers who run OS X on their development boxes.
Good to hear, more surprised by Apple than Oracle
common-sense and self-interest prevail
Re: common-sense and self-interest prevail
Remember, the Apple JVM already was the Sun JVM (the same one as in OpenJDK) under the hood, with some nifty Mac OSX capabilities plugged into it.
Cameron Purdy | Oracle Coherence
Apple, by agreeing to supply to the OpenJDK project the hard work they have done in the past to integrate the JVM to OSX, has really put the best interests of the Java developers first.
Although Java isn't my favourite language anymore, with the simply amazing EJB3.1/CDI standards and the work of Adam Bien proselytizing the same, I just can’t see myself moving off Java any time soon.
I’m very happy that I won’t need to use that bootcamp partition I set up last week.
Tom Gilb & Kai Gilb Jan 26, 2015