Originally published 2008-01-21

Eclipse and the Mystical Error 13

This is less of a rant and more of a how-to. But also a bit of a rant, since there's no reason why I should have had to figure out how to do this.

What I wanted to do: Install Eclipse on our new database server and X-Forward it to my desktop, so I can compile some stuff we want to run on the DB server the same way I would compile it on my desktop. The database server is a 64-bit box running 64-bit Fedora.

What I expected to do: Install Java using the RPM from Sun's website (I don't trust Fedora's Java). Install Eclipse from the tarball on Eclipse's site (I don't trust Fedora's Eclipse). SSH into the server with -X and run eclipse.

What happened: Installing Java went fine, as expected. But then I tried to X-Forward something from that machine, and it didn't work. Of course, the server didn't have an X server on it, but we expected that as long as it had the X client libraries, we should be able to X-Forward without any trouble. As it turns out, you also need the xauth package. Of course, no one has documented this anywhere. But, once I had yum installed xorg-x11-xauth, it worked fine. Then came installing eclipse. Easy enough, un-tar the package in to /opt, and run it. I got a nice dialog box with an exceptionally informative error: Error 13. Thanks, Java.

As it turns out, one of the many causes of Error 13 is telling the 64-bit Java that your application is 32-bit. Magic portability my ass! And the kicker is: Eclipse doesn't link to a 64-bit version anywhere on their website. The only way to get it seems to be copying the location of the 32-bit version and rummaging through the directory where it's kept to find the 64-bit version. For your reference, the Europa version can be found here (courtesy of Waterloo's CS club).

So, there are three things to rant about here:

  1. Java's error reporting: Error 13 wouldn't even be so bad if it were documented, but it's not.
  2. The fact that even though Java claims to provide magic portability, you need to download a special 64-bit version of a Java app to make it run on a 64-bit system.
  3. The fact that Eclipse knows about this, and even provides a 64-bit version, but doesn't link to that version on their website (which is a generally un-navigatable mess).