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/
    • remove /Applications/Utilities/Java 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
    • a symlink to /System/Library/Frameworks/JavaVM.framework/Home/
  • /System/Library/CoreServices/:
    • Jar
    • Java Web
    • JavaVersion.plist
  • /System/Library/Frameworks/:
    • JavaFrameEmbedding.framework
    • JavaVM.framework
  • /System/Library/Java/:
    • Extensions/ containing several .jar and .jnilib files
    • 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.