As well as yesterday's back to the Mac presentation, Apple released a number of updates, including Java for 10.6 update 3, which brings the Java version to 1.6.0_22 and fixes numerous security holes.
Significantly, in the release notes, Apple signs its exit to the Java licensee space with this comment:
As of the release of Java for Mac OS X 10.6 Update 3, the version of Java that is ported by Apple, and that ships with Mac OS X, is deprecated.
This means that the Apple-produced runtime will not be maintained at the same level, and may be removed from future versions of Mac OS X. The Java runtime shipping in Mac OS X 10.6 Snow Leopard, and Mac OS X 10.5 Leopard, will continue to be supported and maintained through the standard support cycles of those products.
It lays out a structure for installing 3rd party VMs in /Library/Java/JavaVirtualMachines
or ~/Library/Java/JavaVirtualMachines
, presumably aimed at consuming OpenJDK builds for the Mac in the future or other ports such as SoyLatte. It also notes that this reorganisation may cause some problems for IDEs (presumably, Eclipse and NetBeans since Xcode is an Objective-C application):
In testing, some Java IDEs have shown problems navigating into the new JDK bundle structure, and persisting the location of the new JDK bundles. Some IDEs may have to change how they prompt users to locate a JVM on Mac OS X, and should ideally present a list of JVMs generated from /usr/libexec/java_home --xml, which outputs each discovered JVM, and orders them according to the user's order in Java Preferences.
Whatever has caused this change of heart, it's not the first time Apple has caused pain for Java developers. Back when Leopard was coming out, the 64-bit JVM and development on 10.6 was halted in preference to Snow Leopard; leaving PPC users out in the cold with an antiquated version of Java. Going further back at WWDC 2001 Steve Jobs presented OSX as the best platform for Java development, including the WebObjects port to Java which for a considerable period of time ran the Apple store.
The exact reasons behind this deprecation aren't known; it may be that Apple aren't willing to license Java from its new owners, or it may be a result of the continued eviction of non-Apple software from the core platform. Recently, it has been claimed that Java exploits exceed that of Adobe Reader; whether that's accurate or not, Java on OSX has had its fair share of security vulnerabilities that have been patched much later than on other platforms, leaving Mac users especially vulnerable (and leading to advice on how to disable Java in WebKit permanently). Even the new MacBook Air doesn't ship with Flash; a sign of things to come in 10.7 OSX Lion. Whatever the reasons, Java developers are likely to be caught in the cross-fire once again.