Switching Between J2SE 1.4.2 and J2SE 5.0 on OS X

As noted in a previous post, we started using J2SE 5.0 (or “1.5″ as everyone calls it) at work last week. Upgrading the PowerBook was pretty easy.

The anoying thing is that you have to manually go change around symlinks to start using the 5.0 compiler. To do that, you:

$ cd /System/Library/Frameworks/JavaVM.framework/Versions/
mcote-laptop:/System/Library/Frameworks/JavaVM.framework/Versions cote$ ls -l
total 48
lrwxr-xr-x   1 root  wheel    5 Jun 29 13:44 1.3 -> 1.3.1
drwxr-xr-x   8 root  wheel  272 May 27 14:41 1.3.1
lrwxr-xr-x   1 root  wheel    5 Jun 29 13:44 1.4 -> 1.4.2
drwxr-xr-x   9 root  wheel  306 Jul  1 09:17 1.4.2
drwxr-xr-x   8 root  wheel  272 Jun 10 13:48 1.5.0
drwxr-xr-x   6 root  wheel  204 Jun 29 13:45 A
lrwxr-xr-x   1 root  wheel    1 Jun 29 13:44 Current -> A
lrwxr-xr-x   1 root  wheel    5 Jul  1 20:17 CurrentJDK -> 1.4.2
-rwxr-xr-x   1 root  wheel   50 Jun 29 21:48 to14.sh
-rwxr-xr-x   1 root  wheel   50 Jun 29 21:48 to50.sh
$ sudo unlink CurrentJDK
$ sudo ln -s 1.5.0 CurrentJDK
$ ls -l
total 48
lrwxr-xr-x   1 root  wheel    5 Jun 29 13:44 1.3 -> 1.3.1
drwxr-xr-x   8 root  wheel  272 May 27 14:41 1.3.1
lrwxr-xr-x   1 root  wheel    5 Jun 29 13:44 1.4 -> 1.4.2
drwxr-xr-x   9 root  wheel  306 Jul  1 09:17 1.4.2
drwxr-xr-x   8 root  wheel  272 Jun 10 13:48 1.5.0
drwxr-xr-x   6 root  wheel  204 Jun 29 13:45 A
lrwxr-xr-x   1 root  wheel    1 Jun 29 13:44 Current -> A
lrwxr-xr-x   1 root  wheel    5 Jul  1 20:22 CurrentJDK -> 1.5.0
-rwxr-xr-x   1 root  wheel   50 Jun 29 21:48 to14.sh
-rwxr-xr-x   1 root  wheel   50 Jun 29 21:48 to50.sh
$

And then you’re using J2SE 5.0 for your compiler. Exciting!

There’s another setting for which VM to use for applets and JARs. That’s in Applications->Utilities->Java->J2SE 5.0->Java Preferences.

Easily Switching Back

I’m finishing up my book, JAAS in Action which is primarly done in 1.4.2. So, during the day, I want 5.0, but at night, I want the old version. I got tired of typing unlink, ln, blah, blah, so I made these little scripts that do it for me. You just have to run this with sudo, and they do the trick:

#!/bin/sh
# to14.sh
unlink CurrentJDK
ln -s 1.4.2 CurrentJDK
#!/bin/sh
# to50.sh
unlink CurrentJDK
ln -s 1.5.0 CurrentJDK
Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

Gravatar
WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s