Java 1.3 en Ubuntu Feisty

Esta semana he estado trabajando con unas aplicaciones antiguas que requieren Java 1.3 por la versión del Application Server que están utilizando. Java 1.3 es bastante antiguo y depende de algunas bibliotecas igual de antiguas, piensen en esos tiempos en que no se usaba UTF-8 por omisión en Linux.

Tal como esperaba, no lo pude ejecutar directamente en Ubuntu Feisty, trate de darle algunas pistas al sistema, como el clásico LD_ASSUME_KERNEL pero tampoco tuve éxito. Al final, el procedimiento era bastante sencillo, pero bien podría haber perdido mucho más tiempo en esto. Estoy seguro de que alguien más agradecerá este tip (Hi Aldrin!)

Se necesitan 4 sencillos pasos:

Paso 1: Descargar Java 1.3 desde el sitio de Sun

  • Ir a http://java.sun.com/products/archive/
  • Seleccionar J2SDK 1.3 o J2RE 1.3 segun se necesite. Yo me fui por J2SDK 1.3.1_20

Paso 2: Cambiar los permisos y ejecutar el archivo .BIN para aceptar la licencia y descomprimir el archivo. Recomiendo hacer esto en el directorio /opt

cd /opt
chmod 755 ELARCHIVO.BIN
./ELARCHIVO.BIN

En mi caso, esto generó el directorio /opt/jdk1.3.1_20

Paso 3: Instalar libstdc++ compatible con esta version de Java. Ojo que el numero de version podria cambiar, lo importante es que sea 2.x

apt-get install libstdc++2.10-glibc2.2

Paso 4: Crear un link simbólico para que el binario de java pueda encontrar la biblioteca libstdc++ que espera. Ojo que las versiones pueden cambiar

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

Con eso ya podrán ejecutar java, pero seguramente tendrán problemas por el soporte multilenguaje, entonces antes de ejecutar java asegurense de ejecutar

export LANG=en_US

Resultado final:

fcatrin@shaman:~$ /opt/jdk_1.3.1_20/bin/java -version
java version "1.3.1_20"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_20-b03)
Java HotSpot(TM) Client VM (build 1.3.1_20-b03, mixed mode)

Pasos opcionales pero convenientes
Con esos pasos podrán ejecutar java directamente con /opt/jdk_1.3.1_20/bin/java, pero es muy engorroso. Personalmente uso un método que me simplifica el problema de rutas y versiones de java. Todas las versiones de java instaladas las hago vivir en /opt. En ese directorio creo un enlace simbólico apuntando al nombre real del java instalado. Tengo algo asi:

java13 -> jdk1.3.1_20
java14 -> j2sdk1.4.2_02
java -> java14

Para crear uno de esos enlaces aplico:

cd /opt
ln -s jdk1.3.1_20 java13

De esta forma, java13 siempre sera /opt/java13 independiente del java instalado, y el java por omisión siempre sera /opt/java, y si lo deseo lo puedo cambiar para que apunte a java14 o java 13 depende de qué java quiero tener por omisión. En mi .bashrc dice :

export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH

Con eso tengo lo suficiente para que cualquier aplicación java que ejecute utilice el java por omisión (1.4 en este caso). Para el caso de java13 me cree un script /usr/local/bin/java13 que dice:

export JAVA_HOME=/opt/java13
export PATH=$JAVA_HOME/bin:$PATH
export LANG=en_US

Entonces cuando requiero java 1.3 simplemente ejecuto source java13 y listo. De esta forma:

fcatrin@shaman:~$ java -version
java version "1.4.2_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_02-b03)
Java HotSpot(TM) Client VM (build 1.4.2_02-b03, mixed mode)
fcatrin@shaman:~$ source java13
fcatrin@shaman:~$ java -version
java version "1.3.1_20"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_20-b03)
Java HotSpot(TM) Client VM (build 1.3.1_20-b03, mixed mode)

4 Responses to “Java 1.3 en Ubuntu Feisty”

  1. 4
    miguel rojas Says:

    hola, saludos , alguien sabe como cerrar las ventanas de un chat.. por ejemplo el de esta pagina http://www.mipunto.com/punto_chat/masde20.html .. .si alguien me abre un priovado y trato de ecerra la ventana esta no se cierra, intenten con el xkill pero me cierra todas , hasta la de la pagina del chat… y no es lo que quiero

  2. 3
    Franco Says:

    Lo que necesitaba era al contrario, instalar una version antediluviana de Java, ya que dependia de otras aplicaciones que corren en JRE 1.3. Gracias de todas formas!

  3. 2
    Ubuntu Says:

    Si lo que quieres es instalar la última versión de Java en Ubuntu Feisty, aquí está como hacerlo!!! =)
    Java en Ubuntu 7.04

  4. 1
    Sergio Ahumada N Says:

    Nosotros el último paso lo hicimos en .bashrc


    java14() {
    export JAVA_HOME=/export/weblogic/bea/jdk142_08/
    export PATH=$JAVA_HOME/bin:$PATH
    }

    java13() {
    export JAVA_HOME=/export/weblogic/bea/jdk131_08/
    export PATH=$JAVA_HOME/bin:$PATH
    }

    Bueno, se nota que es para correr un BEAWL 🙂


    [san@sunos ~]$ java13
    [san@sunos ~]$ java -version
    java version «1.3.1_08»
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_08-b03)
    Java HotSpot(TM) Client VM (build 1.3.1_08-b03, mixed mode)
    [san@sunos ~]$
    [san@sunos ~]$ java14
    [san@sunos ~]$ java -version
    java version «1.4.2_08»
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03)
    Java HotSpot(TM) Client VM (build 1.4.2_08-b03, mixed mode)

    asi lo podemos correr desde cualquier parte.

    Saludos !