Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: javaws on command line




On Mar 13, 2006, at 11:31 PM, Steve Roy wrote:

Let's see if I understand all this...

Without Java 1.5 installed, Java Web Start.app handles the JNLP, so you get either a 1.3.1 or 1.4.2 VM depending what the JNLP says. If it says 1.5* I assume you get a "no can do".

Right. You'll get an alert saying the specified VM was not available.

With Java 1.5 installed, Java Cache Viewer.app handles JNLPs, and what you get depends on Java Preferences.app.
- JNLP 1.4* ignores Java Preferences so gives you 1.4.2.
- JNLP 1.4+ and 1.4.2 preferred in Java Preferences gives you 1.4.2.
- JNLP 1.4+ and 1.5 preferred in Java Preferences gives you 1.5.
- JNLP 1.5* ignores Java Preferences so gives you 1.5.
- JNLP 1.5+ and 1.4.2 preferred in Java Preferences gives you 1.5.
- JNLP 1.5+ and 1.5 preferred in Java Preferences gives you 1.5.


Is this correct? If so, I find this very unintuitive.

You're correct on all counts, but I wouldn't characterize the '1.4*' behavior as ignoring Java Preferences. The JNLP spec says that this means you'll only take any 1.4 VM that's available, and that's what we're doing.


For 1.4+ and 1.5+, I agree with you that it is not intuitive, but it was done for compatibility's sake. If an application that worked correctly with 1.4.2 started using 1.5.0 and then had problems, we would have a lot of unhappy users. This is a bigger problem with bundled applications that used the plus notation, but it is admittedly easier to correct in JNLP.

Think of the VM ordering as a JVM search path. In prior releases of Java 5, we attempted to 'pick the first VM that matches' starting with 1.4.2, then 1.5.0, then 1.3.1. If you drag 1.5.0 to the top of the list, the search order is 1.5.0, then 1.4.2, then 1.3.1.

In Java 5 release 4, the default matching order is 1.5.0 -> 1.4.2 -> 1.3.1, which is what you would expect.

-- Out of the Tiger box, javaws is a symlink to /Applications/ Utilities/Java/Java Web Start.app/Contents/MacOS/Java WebStart. When you installed a release of Java 5.0, the symlink is overwritten to point to /Applications/Utilities/Java/J2SE 5.0/Java Cache Viewer.app/Contents/MacOS/Java Cache Viewer.

This isn't true on my Mac at work nor my PowerBook at home. This might be the source of my initial confusion.


Steves-TiPB:~ steve$ ls -l `which javaws`
lrwxr-xr-x 1 root wheel 77 Sep 23 09:25 /usr/bin/javaws -> / Applications/Utilities/Java/Java Web Start.app/Contents/MacOS/Java Web Start

I was actually incorrect with this last statement. In Java 5 Rel 4 it should be


/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/ Commands/javaws

which symlinks to the right version-specific link. That was changed in Java 5 release 3 -- Which release of Java 5 do you have installed?

Scott

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Java-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/java-dev/email@hidden

This email sent to email@hidden
References: 
 >javaws on command line (From: Steve Roy <email@hidden>)
 >Re: javaws on command line (From: Steve Roy <email@hidden>)
 >Re: javaws on command line (From: "Michael J. Vinca" <email@hidden>)
 >Re: javaws on command line (From: Steve Roy <email@hidden>)
 >Re: javaws on command line (From: Scott Kovatch <email@hidden>)
 >Re: javaws on command line (From: Steve Roy <email@hidden>)



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

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.