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.
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.
tar -xvf jre-7u21-linux-x64.tar.gz
sudo mkdir -p /usr/lib/jvm/jre1.7.0
sudo mv jre1.7.0_21/* /usr/lib/jvm/jre1.7.0
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).
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:
A continuación creamos el directorio de instalación del JRE en /usr/lib para mover hacia allí lo que hemos descomprimido:
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
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
tar -xvf jre-7u21-linux-x64.tar.gz
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:
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:
Y creamos un enlace simbólico para el nuevo Java en el directorio anterior:
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:
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 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:
A continuación creamos el directorio de instalación del JRE en /usr/lib para mover hacia allí lo que hemos descomprimido:
sudo mv jdk1.7.0_21/* /usr/lib/jvm/jdk1.7.0
Luego, ejecutamos las siguientes órdenes para instalar los comandos java, javac 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
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
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:
Nos responderá algo parecido a esto, donde tenemos que seleccionar la opción donde aparezca "jdk1.7.0":
Repetimos esta orden para javac, javaws, javadoc, 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:
sudo rm -f /usr/lib/firefox/plugins/libnpjp2.so /usr/lib/firefox/plugins/libjavaplugin_oji.so
Después, creamos el directorio de los plugins:
Y creamos un enlace simbólico para el nuevo Java en el directorio anterior:
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.
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:
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 mkdir -p /usr/lib/jvm/jdk1.7.0
sudo mv jdk1.7.0_21/* /usr/lib/jvm/jdk1.7.0
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.
ResponderEliminarHola 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)
ResponderEliminarPor cierto, te ha faltado la instalación del comando javadoc!
Saludos.
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