In 2010 I first wrote about OpenJDK on the Mac and posed some questions. Since Oracle released the Mac version of Java 7 some time ago it is time to revisit these questions and see what happened.
First let’s look back at my questions:
- When will we see the first results of this project?
- Will Apple and Oracle make it easy to install OpenJDK (through the new Mac Store)?
- Will this actually improve the speed of releasing new versions and security updates for the Mac version?
- Will the PowerPC based Macs be supported?
- What does it mean that a new graphical client will be developed?
- Will it integrate seemlessly with the Mac desktop?
- Will applications continue to use a system default Java install, or will applications start to ship with their own version, with all the risks of duplication and outdated versions?
- Will there be a robust update procedure that will promptly notify the administrator about new versions, while not being obtrusive or a system hog?
The first four questions can be answered together. It took Apple and Oracle close to two years to release the Mac version, but the process was documented on the OpenJDK website so at least there was some transparency about the progress of the project. Installation of the Oracle version is fairly easy, it is available at java.com like the Linux and Windows version, but trying to run a Java application on a clean Lion or Mountain Lion installation does not pull in Java 7, but the Apple maintained Java 6, which is a missed opportunity. Another gripe is that without apparent reason some applications (e.g. CrashPlan) do not work with Java 7. PowerPC based Macs are not supported, but that’s no surprise since Oracle states Mac OS X Lion 10.7.3 or newer as the required OS version. So far the track record for releasing security updates has been a mixed bag. Oracle has managed to release security updates for all platforms at the same time, but at the same time has been criticised for being late with security updates in general.
There is little to say about questions 5 and 6, for the user there is no distinction between the Java 6 and Java 7 look and feel. Even though Java applications have never reached full integration with the system, they do feel like a part of the system and support the normal Mac OS X user interface features like full screen. The system preferences panel for Java is badly integrated, it is just a redirection to a separate application and it is not properly localised (my system is Dutch, but the preference panel still is in English). The application that is launched is in English as well.
Answers to the last two questions are a bit disappointing. Even though there is a default java installation, using it from your own application is limited to those applications that are downloaded outside of the Mac App Store. Apple prohibits dependencies on third party applications for submissions to the Mac App Store, so any application that is built with Java has to ship with its own JRE to be accepted. Oracle has instructions on how to package your application for the Mac App Store, other people include instructions to handle sandboxing requirements in your Java application. This requirement to bundle the Java Runtime with your application will lead to duplicate copies of the runtime with all the potential security issues.
The update mechanism implemented by Oracle is a check that runs in parallel with your application startup every time you run a Java application. However in my experience it doesn’t work, when I wrote this article I was still running update 6 on my computer while update 7 was available. I didn’t get any prompt about the new version, when checking with the System Preferences it would download the JRE while I have the JDK installed, when doing a manual update of the JDK the old versions of Java 7 were left alone. This is not only a waste of disk space, but leaves the system insecure because the new version is not enabled by default. However administrators will be able to deploy new versions easily since Oracle chose to distribute Java as a standard Apple installer package.
Even though Oracle has come with a robust upgrade of Java on the Mac that should give user insurance that Java on the Mac will stay a viable option, it left several rough edges that make for a less than ideal situation. Especially the fact that not all applications will be able to use the default java installation and the fact that there are some wrinkles in the update procedure need to be taken care of.