Java app uses own launcher and bundles JDK but OS X still insists that Java SE 6 be installed

Davin McCall davmac at davmac.org
Thu May 16 09:11:03 PDT 2013


On 16/05/13 16:51, Mike Swingler wrote:
> OS X uses the "Java" dictionary in the .app's Info.plist before the executable is launched.
>
> Afterwards, if you have a primary executable or a library that loads before HotSpot which is linked against the JavaVM.framework, that will also kill the app, and trigger the Install-on-Demand experience.
>
> I'd suggest checking your binaries with "otool -L".

Mike, thanks for your reply. I've renamed the "Java" dictionary to 
"XXXX" but I still get the dialog requesting that I install Java 6.

If I run "otool -L" I get:

BlueJ.app/Contents/MacOS/JavaAppLauncher:
     /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa 
(compatibility version 1.0.0, current version 17.0.0)
     /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
version 159.1.0)
     /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current 
version 228.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 
(compatibility version 150.0.0, current version 635.21.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation 
(compatibility version 300.0.0, current version 833.25.0)
     /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit 
(compatibility version 45.0.0, current version 1138.47.0)

As you can see, the executable isn't linked against the JavaVM.framework 
(it loads it dynamically, and I'm confident that it's loading the 
bundled one).

When I run the app directly from the terminal, I don't get the dialog 
requesting Java 6.

Any other suggestions?

Davin



More information about the macosx-port-dev mailing list