Getting OS X to Install Java 7 on App Launch
mik3hall at gmail.com
Thu Feb 6 02:39:40 PST 2014
On Feb 5, 2014, at 10:04 PM, Will Herrmann <wjherrmann at gmail.com> wrote:
> Java is no longer installed by default on OS X, but fortunately if a user tries to launch a Java app for the first time, they receive the following message: "To open "Test App", you need a Java SE 6 Runtime. Would you like to install one now?"
This is probably an older java app. As Christorpher Brown mentions there are two different java application launchers depending on what jre/java version/vendor the application is for.
If it's old application with JavaApplicationStub it will probably try to install Java 6. If its a newer openjdk Java 7 application it should probably try to install Java 7.
New applications are based on the, now inactive, appbundler project. You can google that to find the java net project.
There is a possibly still somewhat active infinitekind bitbucket project branched off of that, with some fixes and enhancements that should turn up on google too.
My AppConverter application below is supposed to convert or at least get you started on a Java 6 to Java 7 application conversion.
On Feb 6, 2014, at 2:31 AM, Christopher Brown <christopherbrown06 at gmail.com> wrote:
> because I don't want to embed a JRE
> (download size *IS* perceived as an issue by some, as is the waste of disk
> space, when there are lots of similar applications) and because there's no
> need for JavaFX. I'd appreciate any feedback from anyone about how to
> achieve this so I can concentrate on the best approach instead of wasting
> time on dead ends...
Either embedded or non-embedded ire should work with the apple extensions. Embedded JRE is mainly to allow the application to be signed and then maybe become a valid app store candidate.
It is currently optional but as OS security tightens in the future it may become required for all applications to be signed. There are other supposed reasons why an embedded JRE might be chosen but I agree the download size is not good.
> I've already updated a SWT application using a simple shell script relying
> on /usr/libexec/java_home in an ".app" because it integrates nicely with
> the OS X desktop with none of the Swing "it's how you launch it" issues.
> It deals with the "there's no JRE" issue by detecting the problem in the
> script and displaying a dialog using AppleScript.
Not using one of the native launchers I think means your application will not support AppleEvents like open document. If your application doesn't rely on these it might be a valid alternative.
trz nio.2 for OS X http://www195.pair.com/mik3hall/index.html#trz
HalfPipe Java 6/7 shell app http://www195.pair.com/mik3hall/index.html#halfpipe
AppConverter convert Apple jvm to openjdk apps http://www195.pair.com/mik3hall/index.html#appconverter
More information about the macosx-port-dev