Although Java 6 hasn’t had a public update since 2013, for years thereafter Apple would periodically release an installer to keep the runtime working on successive versions of OS X/macOS.

The most recent version is Java for OS X 2017-001. Sharp-eyed Mac users may have noticed that the “more details” link on that page actually goes to a page on changes in Java for OS X 2015-001, so we aren’t told what’s different about 2017-001. Also, as the links in these posts reveal, the URL for 2017-001 used to host the pages for 2013-005 and 2015-001.

It’s as though Apple wanted all versions before 2017-001 to simply disappear from history.

So what changed? I compared the installers of 2017-001 with 2015-001 using Suspicious Package, which revealed that 2017-001:

  • no longer includes scripts that attempt to symlink /Library/Internet Plug-Ins/JavaAppletPlugin.plugin to the placeholder in /System/Library/Java/Support/CoreDeploy.bundle/Contents, and remove /Applications/Utilities/Java Preferences.app and /System/Library/Java/JavaVirtualMachines/1.6.0.jdk
  • no longer installs anything but /Library/Java/JavaVirtualMachines/1.6.0.jdk.

In contrast, 2015-001 also installs:

  • /Library/Java: an empty Extensions/ folder and a symlink to /System/Library/Frameworks/JavaVM.framework/Home/
  • /System/Library/CoreServices/: Jar Launcher.app, Java Web Start.app, JavaVersion.plist
  • /System/Library/Frameworks/: JavaFrameEmbedding.framework, JavaVM.framework
  • /System/Library/Java/: several .jar and .jnilib files in Extensions/, and Support/ containing CoreDeploy.bundle and Deploy.bundle
  • /System/Library/LaunchAgents/: two agents called “InstallOnDemand” and “updateSharing”
  • /System/Library/PrivateFrameworks/: JavaApplicationLauncher.framework, JavaLaunching.framework
  • /usr/bin/ and /usr/libexec: several symlinks to binaries in /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands
  • /usr/share/man/man1: symlinks to man pages for the above binaries in /System/Library/Frameworks/JavaVM.framework/Resources/Documentation/man
  • /usr/lib/java/libjdns_sd.jnilib

It looks like Apple decided that their installer would only provide the JDK for any projects that build against it, and delegate providing the compiler and all other binaries to the official, more up-to-date Java installers. You’re unlikely to run into this being a problem, unless you’re intentionally running a very old version of something — as I do in my next post.