Mailing Lists: Apple Mailing Lists
Image of Mac OS face in stamp
Re: Java for Mac OS X 10.5 Update 4 and JavaAppLauncher
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Java for Mac OS X 10.5 Update 4 and JavaAppLauncher



Thanks for the explanation!
/Jan

On 16 jun 2009, at 16.54, Mike Swingler wrote:

On Jun 16, 2009, at 7:23 AM, Jan Andersson wrote:

After the latest upgrade starting several of my Java-based applications fails
(when I have changed the plist to say 1.6+). This includes IntelliJ, Install4J
and DbVisualizer.


[...]

Why doesn't existing JavaAppLauncher's work with latest Java 1.6? I know that I can
copy /System/Library/Frameworks/JavaVM.framework/Resources/MacOS/ JavaApplicationStub,
but this sound like a problem *may* users will run into after upgrading to Update 4?

This is part of a change to the double-clickable app launching policy (which we explained in detail in the developer preview release notes). To enabled the Finder's "Run in 32-bit mode" checkbox for Java apps, and to make the transition to 64-bit by default easier, we've modified the JavaApplicationLauncher.framework to only launch application's in the architectures they have present in their JavaApplicationStub.


This was done now for a variety of reasons: until Update 4, the JavaApplicationStub and all apps that were bundled with it were 32- bit Universal. Very few apps required 1.6 in their Info.plist, so now was the best time to switch this policy. Applications with PPC or PPC/i386 stubs would continue to run in 32-bit mode indefinitely, until they rebundled after Update 4, which would then opt them into launching 64-bit (with the ability to downshift to 32-bit using the checkbox Finder's Get Info window). This simplifies the rule down to "if you don't have the architecture present, we won't launch you in it", which is exactly the same rule for launching native Cocoa apps.

The thinking is that if you haven't rebundled, you likely haven't ever considered that you'd be run in 64-bit mode (and when users have dragged Java SE 6 to the top of their Java Preferences, they found that some of their applications stopped working). By preventing apps from being launched in 64-bit if they haven't rebundled, we can maintain the widest compatibility, with a minor impact on developers (and actually let them have a say in what their version and architecture requirements are).

In your case, since you are manually modifying the Info.plist to 1.6+, replacing the JavaApplicationStub is also required, since IntelliJ 7 was likely not expecting to be launched in 64-bit, and may contain some 32-bit only native libraries.

Hope this explains what you are seeing,
Mike Swingler
Java Runtime Engineer
Apple Inc.

_______________________________________________ Do not post admin requests to the list. They will be ignored. Java-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
References: 
 >Java for Mac OS X 10.5 Update 4 and JavaAppLauncher (From: Jan Andersson <email@hidden>)
 >Re: Java for Mac OS X 10.5 Update 4 and JavaAppLauncher (From: Mike Swingler <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2011 Apple Inc. All rights reserved.