On Jan 14, 2006, at 10:01 AM, Paul Howland wrote:
Interesting.
On my Mac running 10.4.4, /usr/bin/java points to /System/Library/
Frameworks/JavaVM.framework/Versions/CurrentJDK/Commands/java
which in turn points to 1.4.2 or 1.5.0, depending on what J2SE you
have installed.
Mac OS X 10.4.4 is currently defaulted to 1.4.2 even if you have
the public release of Java 1.5 installed. You will only get a
symbolic link change if you install the latest java 1.5 developer
preview. When J2SE 1.5 update 4 is released to the public then
folks that it install it will have Java 1.5 as their default (the
symbolic link and preferences set to 1.5).
I agree you could modify your path, but given that most people
won't have done that, my original point was correct. As regards
modifying the symbolic link I described, it is trivial to do (and
trivial to put back) and does no more than I described. It has no
other untoward side effects.
1) It affect the whole of the system. It other words it may break
other applications or Apple's own application / java subsystem
which may make assumption about how it is configured. Why use a
shotgun when you don't have to?
2) It changes a symbolic link that is managed by Apple (under /
System). It may cause updates to break or install incorrectly and/
or an update may change it on you with out you realizing it.
3) It puts your system in a non-standard configuration (differs
from what your customers have). Your testing may not find issues
that your customer may hit as a result.
4) Changing it is simply not needed.
- IDEs can be told to use a particular JDK/JVM using fully
qualified paths (many IDE support easy selection from a list of
JDKs / JVMs available on the system).
- Bundle based applications can request the version of Java the
needed via plist entries (note Java preferences can affect that
depending on what the plist entries are).
- JNPL using Applets / Applications can request which version of
JVM that want (like bundle based applications, again potentially
affected by java preferences)
- Applets (not using JNPL) get what ever java preference is set to
(unless the users browser overrides that in some way)
- Command line use of Java can be controlled using PATH
modification or fully qualified paths. (each terminal instance
could be set to use a different JVM / JDK)
-Shawn