Feb 16 2006
Using Java 1.5.0 on OS X instead of the stock 1.4.2
I have Java 5 installed on my Mac, but I couldn’t figure out how to use it.
Trying to figure out what /usr/bin/java is, I got:
hugo@Oompa-Loompa ~% ls -l /usr/bin/java lrwxr-xr-x 1 root wheel 57B Nov 23 13:03 /usr/bin/java@ -> /System/Library/Frameworks/JavaVM.framework/Commands/java hugo@Oompa-Loompa /System/Library/Frameworks/JavaVM.framework/Commands% ./java -version java version "1.4.2_09" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_09-232) Java HotSpot(TM) Client VM (build 1.4.2-54, mixed mode) hugo@Oompa-Loompa ~% ls -l /System/Library/Frameworks/JavaVM.framework total 56 lrwxr-xr-x 1 root wheel 27B Nov 23 13:03 Classes@ -> Versions/CurrentJDK/Classes lrwxr-xr-x 1 root wheel 28B Nov 23 13:03 Commands@ -> Versions/CurrentJDK/Commands lrwxr-xr-x 1 root wheel 24B Nov 24 00:08 Headers@ -> Versions/Current/Headers lrwxr-xr-x 1 root wheel 24B Nov 23 13:03 Home@ -> Versions/CurrentJDK/Home lrwxr-xr-x 1 root wheel 23B Nov 23 15:49 JavaVM@ -> Versions/Current/JavaVM lrwxr-xr-x 1 root wheel 29B Nov 23 13:03 Libraries@ -> Versions/CurrentJDK/Libraries lrwxr-xr-x 1 root wheel 26B Nov 23 15:49 Resources@ -> Versions/Current/Resources drwxr-xr-x 13 root wheel 442B Feb 16 18:24 Versions/ hugo@Oompa-Loompa ~% ls -l /System/Library/Frameworks/JavaVM.framework/Versions lrwxr-xr-x 1 root wheel 5B Nov 23 15:49 1.3@ -> 1.3.1 drwxr-xr-x 8 root wheel 272B Jun 9 2005 1.3.1/ lrwxr-xr-x 1 root wheel 5B Nov 23 13:03 1.4@ -> 1.4.2 drwxr-xr-x 8 root wheel 272B Jun 9 2005 1.4.2/ lrwxr-xr-x 1 root wheel 5B Nov 23 15:49 1.5@ -> 1.5.0 drwxr-xr-x 8 root wheel 272B Nov 23 15:49 1.5.0/ drwxr-xr-x 6 root wheel 204B Feb 15 08:05 A/ lrwxr-xr-x 1 root wheel 1B Nov 23 15:49 Current@ -> A lrwxr-xr-x 1 root wheel 5B Nov 23 13:03 CurrentJDK@ -> 1.4.2
A here is therefore version 1.4.2_09, and I wanted to use 1.5.
So I ended up doing something ugly:
hugo@Oompa-Loompa /System/Library/Frameworks/JavaVM.framework/Versions% sudo mv Current Current.DIST hugo@Oompa-Loompa /System/Library/Frameworks/JavaVM.framework/Versions% sudo mv CurrentJDK CurrentJDK.DIST hugo@Oompa-Loompa /System/Library/Frameworks/JavaVM.framework/Versions% sudo ln -s 1.5 Current hugo@Oompa-Loompa /System/Library/Frameworks/JavaVM.framework/Versions% sudo ln -s 1.5 CurrentJDK
And behold:
hugo@Oompa-Loompa ~% java -version java version "1.5.0_05" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-83) Java HotSpot(TM) Client VM (build 1.5.0_05-48, mixed mode, sharing)
I can already hear Mac people scream.
This is what happens when you let a Unix geek play with a Mac. I bet there was a better way to do that, but who knows how. I’ll have to watch out for things breaking in the Java world now.

