Java 7 for Mac OSX

Mike Swingler swingler at
Tue Feb 21 13:49:53 PST 2012

On Feb 20, 2012, at 5:28 PM, Gregg Wonderly wrote:

> Having the appropriate JRE installed for users to run my Java software, is also a big deal for me.   If we really do need to ship the "appropriate" JRE with every application, then it seems like we need to turn the whole compilation process upside down, and remove the JIT, and just have a complete native application built, instead of a jar.   All of the dynamic binding properties of Java, allow me, as a developer, to let you guys, the providers of Java, fix your issues, independent of me.

That is an extreme oversimplification of the facts of real software development.

When it comes time for you to test your app, you only test against the version of Java you have, not future ones that don't exist yet. For your app's behavior to remain stable, the platforms it rests upon must be stable as well. Bundling your own JRE is the _only_ way to ensure that stability, and enable your app to be deployed as simply and as widely as possible on the Mac. This is also true on other platforms, but since deployment other platform is not as simple as dropping a single bundle onto the filesystem, this fact is shrouded by installers, scripts, registries, and other voodoo end users don't understand.

> Mike, can you provide some kind of a "position" on this issue, that is framed around the ideas of "open source"?  If I have to "build" with "your release" in order to create "my release", that provides a huge "problem" for me, to distribute my Java application when I may not have a "place" to build for a particular OS that my users want to use the application on.

If you aren't testing on the platforms you are deploying on, you shouldn't claim to support them, because your not actually supporting them.

> The portability and dynamic binding properties of Java are key to my desire to want to continue to use it.  If everyone really thinks that the JRE/JDK can not be separate from the applications that use it, then there is no longer any advantage to using Java.
> Perhaps that's the intent?  Are we just hammering nails in the coffin now?

I think you are glossing over the actual mechanics of deploying a Java app for any platform. On the Mac, you have always had to bundle your app, write an applet, or use Web Start. From the numbers I see, Web Start is the least popular of any deployment technology by one and sometimes two orders of magnitude. When the rubber hits the road, and you have an app that's used by a lot of people, on the Mac, you ship an app bundle.

Including a JRE inside the app bundle is simply a new requirement, since Apple does not provide one as part of the base OS, and Oracle is in charge of shipping Java 7 and newer versions. It doesn't matter if you bundle a proprietary binary built by Oracle, an OpenJDK binary you built yourself, or an OpenJDK binary someone else built for you - it's your choice.

Mike Swingler
Apple Inc.

More information about the macosx-port-dev mailing list