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