Last week's update of Java 7u4 brought about a number of minor changes to the runtime, including for the first time a release of JDK and JavaFX SDK for Mac OSX.
Prior to this release, Java releases for OSX have come through Apple who in recent years backed away from Java as a runtime platform. With the release of OpenJDK, instead of vendors providing their own variants and customisations on top of the platform, the goal is to have everyone converge on OpenJDK as the reference implementation. One advantage of this is that by moving the support upstream, security fixes will be made available for all platforms at the same time, instead of on a platform-by-platform basis. (Apple was particularly bad at releasing timely updates for its Java runtime; the recent spate of Flashback trojans and viruses were made possible through a Java security hole in Apple's original implementation which had been fixed for a while in OpenJDK.) It is worth noting that it is a 64-bit only build on Lion or later.
Although only a point release, there are a number of other minor changes, detailed in the release notes, that are worth noting.
Firstly, the next-generation garbage collection algorithm (known as G1) is fully supported in this version of the VM. Although this had been available in prior releases as a commercially supported variant and via an unlock (-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC
), this is the first time it is enabled on OpenJDK without the Experimental switch.
The G1 garbage collector – though not a real-time garbage collector – provides a much faster throughput of allocation/collection, which significantly limits the amount of full GC pauses that are often seen with prior garbage collectors. A presentation on G1 was available in JavaOne 2008, and is based on the ACM paper A generational mostly-concurrent garbage collector. To enable the G1 garbage collector in Java7u4, the same +XX:+UseG1GC
is used as detailed on the VM command line options page, and more information is available via the garbage first collector description page.
Secondly, Java 7u4 is the first version of Java to be made available via java.com. Although this has shipped other versions of Java from the early Java 2 days, the 7u4 release is the first Java 7 release to be made available from the portal by default. (There is also an updated Java 6u32 available for those still on Java 6.)
Thirdly, some of the JRockit VM technology –which was acquired with the takeover of BEA in 2008 – is making its way into the OpenJDK systems. This includes the ability to generate buffered text dumps after crashes, an enhanced JMX agent and a diagnostics command framework called jcmd
. This addition to the platform was covered in JEP 137 and makes its first appearance in Java7u4. There is likely to be a number of support and diagnostics tools that integrate on top of this framework in the future.
With the release of Java7u4 being available from Java.com for the first time, it is likely that end users of Java will be moving towards Java7 by default for installs. There has even been some discussion of automatically updating Java6 installs to Java7 in the future, though there are no plans at the moment to make this happen. With Java7 now being made available on all platforms from Oracle, and with the renewed effort around Java development, it seems that Oracle has breathed life back into the ecosystem.