Oracle Java en Linux


Desde que Oracle retiró la licencia de distribuidor de Java (JDL) a Ubuntu/Debian, la versión Java de Oracle (antes Oracle-Sun) ya no está en los repositorios "partner" de estas distribuciones. Desde entonces, si instalas JRE (Java Runtime Environment) o JDK (Java Development Kit), te encuentras con que se instala la versión OpenJDK (libre). Aún así, puedes necesitar instalar la versión de Oracle de Java. A continuación, te explico cómo hacerlo.

Vamos a ver cómo instalar tanto JRE (para usuarios "estándar") como JDK (para desarrolladores o programadores). Desde la página de descargas de Oracle podemos descargar la versión que queramos. Esta guía es válida para cualquier distribución Linux.

Instalación de JRE

Una vez en la página de descargas del JRE, bajamos el archivo tar.gz según nuestra arquitectura (32 bits será el que termina en i586, y 64 bits será el que termine en x64). A fecha de este post, la versión del JRE es la 7, actualización 21 ; cuyo nombre de archivo es jre-7u21-linux-ARC.tar.gz y en mi caso, voy a instalar la versión para 64 bits (donde ARC = x64).

A partir de aquí, si tu máquina es de 32 bits, deberás cambiar cada aparición de x64 por i586, y cada aparición de amd64 por i386.
Lo descargamos en nuestra carpeta personal, o abrimos un terminal en la carpeta donde tengamos el archivo y escribimos lo siguiente para descomprimir el paquete:

tar -xvf jre-7u21-linux-x64.tar.gz

A continuación creamos el directorio de instalación del JRE en /usr/lib para mover hacia allí lo que hemos descomprimido:

sudo mkdir -p /usr/lib/jvm/jre1.7.0
sudo mv jre1.7.0_21/* /usr/lib/jvm/jre1.7.0


Luego, ejecutamos la siguiente orden para instalar el comando java.

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jre1.7.0/bin/java" 0

Además, por si anteriormente hemos tenido instalado OpenJDK o versiones anteriores de Java, ponemos lo siguiente en un terminal:

sudo update-alternatives --config java

Nos responderá algo parecido a esto, donde tenemos que seleccionar la opción donde aparezca "jre1.7.0":



Lo último que nos queda por hacer es instalar el plugin para el navegador (funciona para Firefox, aunque también se actualiza el plugin de Chromium, Chrome y demás). Primero, eliminamos anteriores plugins:

rm -f ~/.mozilla/plugins/libnpjp2.so ~/.mozilla/plugins/libjavaplugin_oji.so

sudo rm -f /usr/lib/firefox/plugins/libnpjp2.so /usr/lib/firefox/plugins/libjavaplugin_oji.so

Después, creamos el directorio (carpeta) de los plugins si no lo tenemos:

mkdir -p ~/.mozilla/plugins
Y creamos un enlace simbólico para el nuevo Java en el directorio anterior:


ln -s /usr/lib/jvm/jre1.7.0/lib/amd64/libnpjp2.so ~/.mozilla/plugins/

ACTUALIZACIÓN: Actualizar Oracle Java JRE
Si lo que necesitas es actualizar Oracle Java JRE a la última versión, descarga el paquete de la última versión y escribe lo siguiente en un terminal para descomprimirlo:

tar -xvf jre-7u21-linux-x64.tar.gz

A continuación sustituimos la versión anterior por la nueva versión de Oracle Java (los enlaces creados anteriormente seguirán siendo válidos), con lo que tendremos actualizado Oracle Java JRE a su última versión:

sudo rm -r /usr/lib/jvm/jre1.7.0
sudo mkdir -p /usr/lib/jvm/jre1.7.0
sudo mv jre1.7.0_21/* /usr/lib/jvm/jre1.7.0

Instalación de JDK (incluye JRE, desarrolladores)

Al igual que en la instalación del JRE, bajamos el archivo de JDK para nuestra máquina. Igual que en el otro caso, voy a instalar la versión amd64, jdk-7u21-linux-x64.tar.gz.

Lo descargamos en nuestra carpeta personal, o abrimos un terminal en la carpeta donde tengamos el archivo y escribimos lo siguiente para descomprimir el paquete:

tar -xvf jdk-7u21-linux-x64.tar.gz

A continuación creamos el directorio de instalación del JRE en /usr/lib para mover hacia allí lo que hemos descomprimido:

sudo mkdir -p /usr/lib/jvm/jdk1.7.0
sudo mv jdk1.7.0_21/* /usr/lib/jvm/jdk1.7.0


Luego, ejecutamos las siguientes órdenes para instalar los comandos javajavac y javaws.

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0/bin/javaws" 1
sudo update-alternatives --install "/usr/bin/javadoc" "javadoc" "/usr/lib/jvm/jdk1.7.0/bin/javadoc" 1
sudo update-alternatives --install "/usr/bin/rmic" "rmic" "/usr/lib/jvm/jdk1.7.0/jre/bin/rmic" 1
sudo update-alternatives --install "/usr/bin/rmiregistry" "rmiregistry" "/usr/lib/jvm/jdk1.7.0/jre/bin/rmiregistry" 1

Como curiosidad, añadir que los dos últimos comandos no se añaden por defecto al añadir los comandos de java, javac o javaws. Tuve que investigar en el contenido del directorio de los binarios de java para encontrar allí ambos. Esto, sobre todo para la ejecución de RMI en java, es muy recomendable añadirlo a las nuestros binarios.

Además, por si anteriormente hemos tenido instalado OpenJDK o versiones anteriores de Java (incluso si instalamos Oracle JRE pero ahora necesitamos la versión para desarrolladores), ponemos lo siguiente en un terminal:

sudo update-alternatives --config java

Nos responderá algo parecido a esto, donde tenemos que seleccionar la opción donde aparezca "jdk1.7.0":



Repetimos esta orden para javac, javawsjavadoc, rmic y rmiregistry; cambiando la última palabra de la orden (que es el binario a configurar) y eligiendo siempre la versión donde aparezca "jdk1.7.0".Por último, instalamos el plugin para el navegador, al igual que para el JRE. Primero, eliminamos anteriores plugins:

rm -f ~/.mozilla/plugins/libnpjp2.so ~/.mozilla/plugins/libjavaplugin_oji.so
sudo rm -f /usr/lib/firefox/plugins/libnpjp2.so /usr/lib/firefox/plugins/libjavaplugin_oji.so

Después, creamos el directorio de los plugins:

mkdir -p ~/.mozilla/plugins
Y creamos un enlace simbólico para el nuevo Java en el directorio anterior:


ln -s /usr/lib/jvm/jdk1.7.0/jre/lib/amd64/libnpjp2.so ~/.mozilla/plugins/
Una vez terminado el proceso, tanto si has instalado JRE como si lo has hecho con JDK, puedes comprobar la actualización de java y de su plugin en esta web.



ACTUALIZACIÓN: Actualizar Oracle Java JDK
Si lo que necesitas es actualizar Oracle Java JDK a la última versión, descarga el paquete de la última versión y escribe lo siguiente en un terminal para descomprimirlo:
tar -xvf jdk-7u21-linux-x64.tar.gz
A continuación sustituimos la versión anterior por la nueva versión de Oracle Java (los enlaces creados anteriormente seguirán siendo válidos), con lo que tendremos actualizado Oracle Java JDK a su última versión:
sudo rm -r /usr/lib/jvm/jdk1.7.0
sudo mkdir -p /usr/lib/jvm/jdk1.7.0
sudo mv jdk1.7.0_21/* /usr/lib/jvm/jdk1.7.0

3 comentarios :

  1. Actualizado. Añadiendo "rmiregistry" y "rmic" de Oracle a nuestros binarios, juntos con los que ya se añadieron en su día (java, javac y javaws) se solucionan varios problemas. Por un lado, con rmic se añadirá la orden a nuestro sistema, pudiendo ahora realizar la compilación de Stubs y Skels de servidores RMI. Por otro lado, con rmiregistry, al actualizarlo a la versión de Oracle, se consigue solucionar el famoso problema que se obtiene al intentar ejecutar servidores RMI en Linux. Al intentarlo, se obtiene siempre una excepción java.lang.UnsupportedClassVersionError: IEjemploRMI1 : Unsupported major.minor version 51.0. Actualizando a la versión de Oracle, esto se soluciona.

    ResponderEliminar
  2. Hola Raúl, gracias a esta entrada por fin he dejado lista la instalación de Java con el RMI y todo, gracias! (aunque al final no haga falta, hahaha)

    Por cierto, te ha faltado la instalación del comando javadoc!

    Saludos.

    ResponderEliminar
    Respuestas
    1. Muy cierto, se me había pasado jeje. Ahora mismo lo pongo :) Y en cuanto Antonio nos facilite la solución para poder conectar en remoto por RMI también lo pondré aquí :) Y gracias por el comentario!

      Eliminar