Mittwoch, 22. August 2007

Java 1.3 on Ubuntu

As we (still) provide Java 1.3 binaries for Apache FOP (for rumored AIX users who are still stuck there ;-) I was going to need a JDK 1.3 for my Ubuntu (Edgy Edge) system to do some testing.

So I went to Blackdown (remember that Sun didn't provide Java for Linux in the early days...) and downloaded the "latest" JDK 1.3, which is Java2 SDK 1.3.1-02b-FCS.

After the installation it threw the following error on the first run:
/home/chrisg/j2sdk1.3.1/bin/i386/native_threads/java: relocation error:
/home/chrisg/j2sdk1.3.1/jre/lib/i386/libjava.so: symbol __libc_waitpid,
version GLIBC_2.0 not defined in file libc.so.6 with link time reference
Some googling turned up that SUN used a private interface from glibc. Well, no easy fix for this...

A closer look at java.sun.com lead to the Java Download Archive (albeit Sun makes it bit hard to find) where I found J2SE 1.3.1.
After the installation the following commands are needed:
sudo apt-get install libstdc++6
sudo ln -s /usr/lib/libstdc++-libc6.2-2.so.3 /usr/lib/libstdc++-libc6.1-1.so.2
and then you should have a working JDK1.3.

The testing (of FOP) revealed some strange errors but that's another story...

Kommentare:

TheNewsBlogger hat gesagt…

That's very interesting. My experience was exactly the opposite. I was completely unable to get Sun or IBM 1.3 vms to work under Ubuntu 6.10, but Blackdown's worked on the first try.

Ben hat gesagt…

Awesome. Thanks for sharing this.

In case anyone's trying this on Ubuntu 7.04, the package you need to install is libstdc++2.10-glibc2.2 (1:2.95.4-24). Then do the symlink as per the original post and everything is happy and rainbowy.

GeorgeP hat gesagt…

In order to find the DEB package usable at Ubuntu (Hardy Heron) go to:

http://packages.ubuntu.com/gutsy/libstdc++2.10-glibc2.2

sudo dpkg -i libstdc++2.10-glibc2.2_2.95.4-24_i386.deb

sudo ln -s /usr/lib/libstdc++-3-libc6.2-2-2.10.0.so /usr/lib/libstdc++-libc6.1-1.so.2

That is what worked for me. Anyway, nice post, thanks!

Stephen hat gesagt…

I had a bit more trouble on Ubuntu 13.11. I decided to go fully retro (before ubuntu) and actually get the requested lib (I was wary about hacking too much stuff together):

Add deb http://archive.debian.org/debian-archive/debian woody main to /etc/apt/sources.list

sudo apt-get update
sudo apt-get install libstdc++2.9-glibc2.1

You'll get signing errors and questions, but the original libs will be there.

I prefer the "authenticity" of the original library, and haven't had any problems yet.