Fixing ZDE 5.5 in Snow Leopard

Standard

If you are still using Zend Studio 5.5, and recently upgrade to Snow Leopard, you will have spotted pretty quickly there is a pretty severe display bug when selecting text.

The reason for this, is that Snow Leopard only ships with Java 1.6 and 1.3 (wtf?)

[sh]
$ ls -al
total 47
drwxr-xr-x 12 root wheel 408 Aug 30 22:08 .
drwxr-xr-x 11 root wheel 374 Aug 29 10:27 ..
lrwxr-xr-x 1 root wheel 5 Aug 29 10:26 1.3 → 1.3.1
drwxr-xr-x 3 root wheel 102 Jul 20 19:35 1.3.1
lrwxr-xr-x 1 root wheel 10 Aug 29 10:26 1.5 → CurrentJDK
lrwxr-xr-x 1 root wheel 10 Aug 29 10:26 1.5.0 → CurrentJDK
lrwxr-xr-x 1 root wheel 5 Aug 29 10:26 1.6 → 1.6.0
drwxr-xr-x 7 root wheel 238 Aug 29 10:26 1.6.0
drwxr-xr-x 8 root wheel 272 Aug 29 10:27 A
lrwxr-xr-x 1 root wheel 1 Aug 29 10:27 Current → A
lrwxr-xr-x 1 root wheel 3 Aug 29 10:26 CurrentJDK → 1.6
[/sh]

As you can see, except for the 1.3 JDK, everything else symlinks to 1.6.0. Now, ZDE will not run with 1.3, and is broken in 1.6, so how do you fix this?

The answer, can be found here: http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard

I am replicating it here, as it looks like it’ll be a temporary problem for them and is likely to disappear.

Update (9/13/2009): See this post for details on getting the Java 1.5 binaries from Apple themselves.

It essentially comes down to this: Grab the Java 1.5 JDK from Leopard (original) and then tell OSX to use the 32bit version by default.

This is all done through the Terminal.

So, first, grab the 1.5.0 leopard tarball and unpack (if the link below stops working, contact me for a mirror):

[plain]
cd /tmp/
wget http://www.cs.washington.edu/homes/isdal/snow_leopard_workaround/java.1.5.0-leopard.tar.gz
tar -xvzf java.1.5.0-leopard.tar.gz
[/plain]

Next, move the folder to the standard JVM location on OSX (this will require your user password):

[sh]
sudo mv 1.5.0 /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0-leopard
[/sh]

Then remove the current 1.5.0 symlink and point a new one to our new 1.5.0-leopard directory.

[sh]
cd /System/Library/Frameworks/JavaVM.framework/Versions/
sudo rm 1.5.0
sudo ln -s 1.5.0-leopard 1.5.0
[/sh]

Next (and this isn’t in the original document), set permissions:

[sh]
sudo chown -R root:wheel ./1.5.0-leopard
[/sh]

Finally, open up the Java Preferences app in /Applications/Utilities, and in the Java Applications section, drag the “J2S2 5.0 32bit” version to the top.

After doing all this, restart ZDE and the selection bug is gone!

– Davey

ZDE 5.5 On OSX

Standard

Even though I am in the process of trying to replace it, Zend Studio 5.5 is still my day-to-day IDE for development. However, on OSX Leopard, it has seemed for a while, like the app was decaying — growing progressively crashier the more I used it. Literally, to the point where I could use it.

I think, however, I have solved the issue.

Simply edit /Applications/Zend/ZendStudio-5.5.1/bin/runStudio_mac.sh and make the following change:

[sh]
java -Xms16m -Xmx256m -cp ZendIDE.jar:MRJToolkitStubs.zip:sftp.jar:axis.jar:commons-discovery-0.2.jar:commons-logging-1.0.4.jar:javaxzombie.jar:jaxrpc.jar:saaj.jar:wsdl4j-1.5.1.jar:jhall.jar:../docs/help.zip com.zend.ide.desktop.Main
[/sh]

becomes:

[sh]
/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home/bin/java -Xms16m -Xmx256m -cp ZendIDE.jar:MRJToolkitStubs.zip:sftp.jar:axis.jar:commons-discovery-0.2.jar:commons-logging-1.0.4.jar:javaxzombie.jar:jaxrpc.jar:saaj.jar:wsdl4j-1.5.1.jar:jhall.jar:../docs/help.zip com.zend.ide.desktop.Main
[/sh]

This just explicitly makes it use JVM 1.5, which is, after all, what it was built for.

Once I did this, it became snappy again, and seems to be far less crash-prone, hurrah!

– Davey