JAVA es un lenguaje de programación que creó Sun Microsystems y cuando Oracle compró Sun, decidió implementar algunas opciones privativas en la máquina virtual para ejecutar los programas JAVA.
Para ciertas actividades como la presentación de impuestos con la Agencia Española de Administración Tributaria vamos a necesitar instalar JAVA.
Si la versión por defecto que instalas en Ubuntu no funciona, es posible que necesites instalar la versión de JAVA de oracle.
Instalación de JRE/JDK por defecto
La mejor opción para instalar Java es usar la versión empaquetada con Ubuntu. En cada versión de ubuntu viene una por defecto una versión de Open JDK, que es una variación open-source del JRE y JDK de oracle.
Para instalar la versión OpenJDK de ubuntu ejecutamos los siguientes comandos:
sudo apt install default-jdk default-jre
El paquete JRE (Java Runtime Enviroment) será el que te permitirá ejecutar cualquier programa software programado en Java, y el paquete JDK (Java Development Kit) es el que te permitirá compilar y ejecutar algunos programas específicos de Java.
En el caso de que estés utilizando un servidor es interesante que instales la versión de menor consumo de memoria, solo tendrás que añadir headless al final del nombre del paquete, en este caso será:
sudo apt install default-jdk-headless default-jre-headless
Esto instalará la versión predefinida del entorno OpenJDK para cada distribución de Ubuntu. A veces esta versión no es la última disponible que puedes instalar.
Podremos ver la versión instalada de java con el siguiente comando:
java -version
Obtendremos algo parecido a esto:
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)
Y para verificar que el paquete JDK está correctamente instalado tenemos que chequear la versión de javac
(el compilador de java) con el siguiente comando:
javac -version
Obtendrás algo parecido a esto:
javac 10.0.1
Versiones específicas de OpenJDK
Para las últimas versiones solo será necesario buscar el papuete de Openjdk que está disponible para esa versión de ubuntu.
Te dejo un listado de los distintas paquetes que te puedes encontrar:
- OpenJDK 7:
sudo apt-get install openjdk-7-jdk openjdk-8-jre
- OpenJDK 8:
sudo apt install openjdk-8-jdk openjdk-8-jre
- OpenJDK 10/11:
sudo apt install openjdk-11-jdk openjdk-11-jre
- OpenJDK 12:
sudo apt install openjdk-12-jdk openjdk-12-jre
Instalación de Oracle JDK
Estos de oracle son la repera, en vez de aunar fuerzas con openjdk y luego cobrar por una versión premium a las empresas, pues han decidido desarrollar algunas funciones extra para cobrar por su solución.
Oracle Java 8
Entonces si queremos instalar la versión que distribuye oracle, necesitas añadir un repositorio de paquetes para la versión oracle JDK. La versión de soporte largo es la 8, y necesitarás ejecutar el siguiente comando:
sudo add-apt-repository ppa:webupd8team/java
Te aparecerá un mensaje en el que entre otras cosas dice que Java 9 ha llegado al final de su vida, que los instaladores de Java 6 y 7 ya no funcionan, que este repositorio funciona para las versiones de Ubuntu 18.04, 17.10. 16.04, 14.04 y 12.04, y que para Java 10 y posteriores hay que utilizar otro repositorio.
Solo tendremos que actualizar el sistema e instalar Java 8:
sudo apt update
sudo apt install oracle-java8-installer
El proceso de instalación descargará el archivo JDK de Oracle y te pedirá que aceptes el acuerdo de licencia, una vez lo hagas se instalará el JDK.
Oracle Java 11 y 13
También tenemos otro repositorio para versiones de Oracle más modernas que pueden ser interesantes para instalarlos en tu ordenador. Este repositorio en principio no lo recomiendo debido a las condiciones que aplica ahora Oracle a sus nuevas versiones de Java, aunque si lo necesitas puedes utilizarlo sin problemas.
Este repositorio contiene los instaladores para Ubuntu, Linux Mint y Debian de Oracle Java 11 (LTS) y 13. Seguro que cuando escribo ya habrá otra versión mayor de Java.
Los binarios de Java no están alojados en ese PPA debido a la licencia que tiene. Los paquetes de instalación simplemente descargan e instalan la versión que corresponde de Oracle Java, por lo que vas a necesitar una conexión a internet, aunque si estás leyendo esto es que funciona bien.
Este repositorio se basa en el anterior los de webup8team y lo han creado los usuarios de www.linuxuprising.com.
La versión de Oracle Java 11 y mayores han cambiado su licencia desde el 16 de Abril de 2019. La nueva licencia permite ciertos usos, tales como uso personal y de desarrollo sin ningún coste, pero otros usos que se autorizaban con la anterior licencia ya no estén disponibles bajo la nueba licencia de Oracle JDK. Tiene un FAQ disponible aquí
Por lo que entenderás que después de este cambio, la nueva versión de Oracle Java 11 y las que vengan (11.0.3 y nuevas) necesitan de una cuenta Oracle para descargar los binarios. Este PPA necesita que te descargues el Oracle JDK 11 .tar.gz y lo coloques en una carpeta, solamente así podrás instalar el paquete oracle-java11-installer-local
.
Los paquete Oracle Java 10 y 12 han llegado al final de las actualizaciones públicas, así que ya no están disponibles, por lo que es mejor que cambies a Oracle Java 11 o OpenJDK11 que es de soporte largo, o instales el último Java 13.
Ahora ya sabes como instalar varias versiones de JAVA, el siguiente pasó será como gestionarlas para que tu sistema utilice una u otra versión.
Pues después de todo este tostón, que en unos meses seguro que cambia, vamos a añadir el repositorio:
sudo add-apt-repository ppa:linuxuprising/java -y
sudo apt update
Para instalar Oracle Java 11:
echo oracle-java11-installer shared/accepted-oracle-license-v1-2 select true | sudo /usr/bin/debconf-set-selections && \
apt-get install -y oracle-java11-installer && \
apt install oracle-java11-set-default
Si queremos instalar Oracle Java 13:
sudo apt install oracle-java13-installer
sudo apt install oracle-java13-set-default
Para hacer que Oracle Java sea la que el sistema usa por defecto, después de instalar el paquete (vale para cualquier distribución) hay que ejecutar install the oracle-java12-set-default
.
Con esto tendríamos instalado Java de Oracle.
Instalación manual de Java
Supongamos que por un casual se te ha ido la olla y vas a instalar Java de manera manual, puede ser ya que hay gente para todo.
Tus razones tendrás, pero como este artículo trata de darte la respuesta a la instalación de Java, aunque sea de esta manera, te voy a explicar el proceso.
Primero nos vamos a la página de Java de 64bits para descargarnos Java 7 o Java 8. Por las razones explicadas en los puntos anteriores te recomiendo que sea Java 8.
Una vez descargado el archivo Java 8, que será algo así: jdk-8u221-linux-x64.tar.gz. Con este archivo simplemente tenemmos que descomprimirlo y guardarlo en una carpeta del sistema para que todo el mundo lo pueda ejecutar.
Para esto aplicamos los siguientes comandos:
sudo mkdir /usr/lib/jvm/java-8-jdk
sudo tar -C /usr/lib/jvm/java-8-jdk -zxf ~/jdk-8u221-linux-x64.tar.gz
Con esto ya tendríamos instalado Java, solo nos faltaría configurar en el ordenador que Java queremos utilizar, ya que podemos instalar todas las versiones que queramos, pero solo podemos tener una activa en cada momento.
Y nos queda JAVAWS
Esta tecnología es Java Web Start, que básicamente se trata de la implementación del estandard Java Network Launching Protocol (JNLP), el cual permite arrancar aplicaciones Java que están en un servidor web, comprobando previamente si el cliente tiene la última versión, y si no es así se descargará la última versión y se ejecutará en local. Así se asegura que la aplicación que se ejecuta está en su última versión.
Los ficheros que contienen toda la información necesaria, tienen la extensión .jnlp.
Lo malo de Java Web Start (JWS) es que oracle dejó de desarrollar en Java 9, a partir del cambio de licencia en Java 11 decidió eliminarla de sus distribuciones JDK. Dicho de otra manera, lo que tienen instalada la última versión de Java ya no pueden usar aplicaciones basadas en JWS, y dado que el soporte público de Java 8 finalizó en el segundo trimestre de 2019, las empresas ya no reciben actualizaciones ni correcciones de seguridad para Java Web Start.
La opción que nos queda medianamente potable es el paquete icedtead-netx. Para instalarlo ejecuta el siguiente comando: sudo apt install icedtea-netx
Gestionar las versiones de Java
En un ordenador podemos instalar varias versiones de Java, pero solo podemos una que funcione al mismo tiempo. Para cambiar la versión de Java o seleccionar otra que instalamos posteriormente usamos el siguiente comando en la consola: sudo update-alternatives --config java
La salida debería parecerse a algo de esto si has instalado varias versiones de Java:
There are 3 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
3 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 manual mode
Te saldrá una pregunta en la que tendrás que elegir el número asociado con la versión de Java que quieres usar por defecto, o presiona **ENTER**
para dejar la selección actual.
Pueder hacer esto para otros comandos de Java, tales como el compilador (javac
) o el javaws, con los siguientes comandos:
sudo update-alternatives --config javac
sudo update-alternatives --config javaws
Otros comandos para los que se puede ejecutar esta configuración incluyen, entre otros: keytool, javadoc y jarsigner.
Establecer la variable de entorno JAVA_HOME
Muchos programas que están escritos en el lenguaje JAVA usan la variable de entorno JAVA_HOME para conocer la ubicación donde está instalado Java.
Establecer esta variable de entorno es muy sencillo, pero primero necesitamos saber el directorio donde está instalada Java. Para ello podemos utilizar el comando update-alternative
como hemos utilizado en el apartado anterior: sudo update-alternatives --config java
Con esto sabremos donde está instalado Java, como por ejemplo para las siguientes versiones de Java:
- OpenJDK 11 se encuentra en: /usr/lib/jvm/java-11-openjdk-amd64/bin/java
- OpenJDK 8 se encuentra en: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
- Oracle Java 8 se encuentra en: /usr/lib/jvm/java-8-oracle/jre/bin/java
Una vez que sepamos esto simplemente tendremos que copiar la ruta de la instalación preferida de Java y abrimos el archivo /etc/enviroment usando el editor de texto que te de la gana. A mi me resulta más sencillo nano
por lo que abrirlo sería así: sudo nano /etc/enviroment
Al final de este archivo, añadiremos la siguiente línea, asegurándonos de que hemos copiado correctamente de Java que vamos a utilizar. En estse caso elegiremos la versión OpenJDK 11: JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/"
Añadiendo esta líne al final del archivo conseguimos que todos los usuarios del sistema establezcan la variable JAVA_HOME
con el valor que le hemos dado. También lo puedes hacer con una sola línea en la terminal: sudo echo $'\nJAVA_HOME='
which java>> /etc/enviroment
Una vez que hemos guardado el archivo, recargamos el archivo para aplicar los cambios en la sesión que tenemos activa con el siguiente comando: source /etc/enviroment
Ahora verificarás que la variable de entorno esté establecida: echo $JAVA_HOME
Y debería aparecer algo como esto: /usr/lib/jvm/java-11-openjdk-amd64/bin/
Si hay más usuarios en la máquina trabajando al mismo tiempo es posible que necesiten desloguearse y volver a loguearse en el sistema.
Confirmar Instalación de Java
Pues ya hemos acabado, después de tanto rollo vamos a comprobar la instalación de Java que tenemos en nuestro sistema. Ejecutamos en el terminal: java --version
Y obtendremos algo parecido a esto:
java 10.0.1 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)
y para los demás lo comprobaríamos así:
javac -version
_salida_
javac 10.0.1
javaws -version
_salida_
Java(TM) Web Start 11.221.2.11-fcs
Conclusión
Al final la instalación de Java la necesitaba para un programa que al final no funcionó con todo lo que hice.
Ya sabes que mis manuales son detallados porque me gusta aprender y escribir todas las posibles opciones que tiene alguien que instala Java en Ubuntu o cualquier linux. Con esto ya sabrás como tener esa versión de Java que te interese en tu máquina y adaptarla a tus necesidades.
Si has llegado hasta aquí es que te ha molado el post, por lo que para que pueda hacer mejores artículos necesito una ayuda económica y puedes desde darle al banner de publicidad, comprar productos o donarme un jate, eso te lo dejo a tu valoración.
Un saludo y nos vemos en el siguiente artículo.
Deja una respuesta