Java y la JVM (máquina virtual de Java) son necesarios para muchos tipos de software, incluidos Tomcat, Jetty, Glassfish, Cassandra y Jenkins.
Java es un lenguaje de programación de alto nivel, basado en clases y orientado a objetos que está diseñado para tener la menor cantidad posible de dependencias de implementación. Java fue desarrollado por Sun Microsystems (que ahora es la subsidiaria de Oracle) en el año 1995. James Gosling es conocido como el padre de Java.
Contenido relacionado:
- Cómo instalar Java 17 en FreeBSD 13
- Cómo instalar Java 17 en Debian 11
- Cómo instalar Java 17 en OpenSUSE Leap 15.3
- Cómo instalar Java 17 en Fedora 35
- Cómo instalar Java 17 en Rocky Linux 8/Centos 8
Requisitos
- Sistema Ubuntu 20.04 actualizado
- Acceso raíz o usuario con acceso sudo
- Acceso a Internet desde el servidor
Tabla de contenido
- Asegurarse de que el servidor esté actualizado
- Instalando Java
- Probando la instalación
- Alternar varias versiones de Java
- Configuración de la variable ambiental
Asegurarse de que el servidor esté actualizado
Antes de continuar, asegurémonos de que los paquetes y repositorios del servidor estén actualizados. Usa estos comandos para lograr el objetivo:
sudo apt update
sudo apt -y upgrade
Si hay paquetes para actualizar, el comando anterior puede tardar un par de minutos.
Instalemos también algunos paquetes comunes que podríamos necesitar. Uso el editor de texto vim, asegúrese de que esté instalado usando este comando:
sudo apt install -y vim
Instalación de Java
Compruebe si Java está instalado en su sistema.
$ java -version
Command 'java' not found, but can be installed with:
sudo apt install openjdk-11-jre-headless # version 11.0.11+9-0ubuntu2~20.04, or
sudo apt install default-jre # version 2:1.11-72
sudo apt install openjdk-16-jre-headless # version 16.0.1+9-1~20.04
sudo apt install openjdk-8-jre-headless # version 8u292-b10-0ubuntu1~20.04
sudo apt install openjdk-13-jre-headless # version 13.0.7+5-0ubuntu1~20.04
sudo apt install openjdk-17-jre-headless # version 17+35-1~20.04
Si ve java: command not found
entonces significa que Java no está instalado. Si Java está instalado, ese comando imprimirá la versión de Java
El repositorio predeterminado de Ubuntu 20.04 incluía Java 17. Esta es la forma más fácil de instalar el JDK usando el administrador de paquetes apt.
Puede buscar java usando este comando:
$ sudo apt-cache search openjdk | grep 17 openjdk-17-dbg - Java runtime based on OpenJDK (debugging symbols) openjdk-17-demo - Java runtime based on OpenJDK (demos and examples) openjdk-17-doc - OpenJDK Development Kit (JDK) documentation openjdk-17-jdk - OpenJDK Development Kit (JDK) openjdk-17-jdk-headless - OpenJDK Development Kit (JDK) (headless) openjdk-17-jre - OpenJDK Java runtime, using Hotspot JIT openjdk-17-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless) openjdk-17-jre-zero - Alternative JVM for OpenJDK, using Zero openjdk-17-source - OpenJDK Development Kit (JDK) source files msopenjdk-17 - OpenJDK Development Kit 17 (JDK) with Hotspot by Microsoft
Ejecute el siguiente comando para instalar Java 17 en Ubuntu 20.04. Instalaremos JDK y JRE para ejecutar aplicaciones y applets de Java.
sudo apt install openjdk-17-jdk openjdk-17-jre -y
Una vez completada la instalación, ejecute el siguiente comando para verificar si funciona correctamente. Si todo funciona bien, debería obtener un resultado similar al que se muestra a continuación.
$ java -version openjdk version "17-ea" 2021-09-14 $ java -version openjdk version "17" 2021-09-14 OpenJDK Runtime Environment (build 17+35-Ubuntu-120.04) OpenJDK 64-Bit Server VM (build 17+35-Ubuntu-120.04, mixed mode, sharing)
Para verificar si el JDK está instalado correctamente, comprobaremos la versión de javac, que es el compilador de Java.
$ javac -version javac 17
Probando la instalación
Probemos que Java 17 está instalado correctamente en este paso mediante la creación de un script simple que imprime Java is installed properly
.
Cree el directorio y cambie a él
mkdir simple-app
cd simple-app
Uso vim para crear y editar archivos de texto en mi sistema. Utilice el editor de texto de su elección en este paso. Crearé un archivo Simple.java
usando este comando:
sudo vim Simple.java
Agregue este contenido al archivo
public class Simple{
public static void main(String[] args) {
System.out.println("Citizix - Java is installed properly");
}
}
Ahora que hemos creado nuestro programa, necesitamos compilar el código fuente de Java en bytecode (archivo de clase) usando el compilador javac.
javac Simple.java
Obtendrá un nuevo archivo llamado Simple.class
, que es el archivo de clase Java compilado.
$ ls
Simple.class Simple.java
El comando anterior solo compilará el código fuente de Java en bytecode. Para ejecutar el programa, ejecutamos el comando java con el nombre de nuestro archivo de clase como argumento.
java Simple
Si todo funciona bien, verá el mensaje "Citizix - Java is installed properly
” en la pantalla.
$ java Simple
Citizix - Java is installed properly
Alternar varias versiones de Java
Si tiene varias versiones de Java instaladas en su sistema, puede configurar qué versión java
el comando predeterminado es.
Use este comando para configurar eso
sudo update-alternatives --config java
Se le dará una lista de las instalaciones de Java disponibles. En este caso, tengo instalados Java 11 y Java 17. La versión predeterminada está marcada con un asterisco (*). Puede optar por usar una versión diferente ingresando el número en el aviso.
$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode
2 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 manual mode
Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/java to provide /usr/bin/java (java) in manual mode
En lo anterior, ingresé 1 en el aviso para elegir Java 11. Confirmemos la versión de Java ahora:
$ java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
Configuración de la variable ambiental
Algunas aplicaciones Java requieren la variable ambiental JAVA_HOME para funcionar correctamente. Algunos programas son muy específicos en la forma en que se ejecutan. Si JAVA_HOME no está configurado, obtendrá un error. Establecer JAVA_HOME evitará que surja este problema.
Para verificar qué instalaciones y rutas de Java existen, use este comando:
sudo update-alternatives --config java
En mi caso, la ruta binaria de instalación de Java es esta /usr/lib/jvm/java-17-openjdk-amd64/bin/java
Vamos a establecer esta ruta en un archivo de entorno /etc/environment
donde todas las aplicaciones pueden acceder.
Abra el archivo con vim:
sudo vim /etc/environment
Ahora necesitamos agregar una línea que exporte el inicio de Java al archivo como este export JAVA_HOME=...
haciendo que el valor sea la ruta que obtuvimos para nuestra instalación de Java:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/bin/java
Este archivo establecerá la ruta JAVA_HOME de OpenJDK 17 como variables ambientales para todos los usuarios del sistema.
Para aplicar el cambio, ejecute el siguiente comando.
source /etc/environment
Para verificar que se ha aplicado la variable de ruta, ejecute el siguiente comando.
echo $JAVA_HOME
La ruta debe establecerse en la ruta de OpenJDK 17, que ha copiado anteriormente. Este es el valor en mi caso:
$ echo $JAVA_HOME
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
De ahora en adelante, no tiene que configurar la ruta JAVA_HOME cada vez que use programas Java. Además, si desea utilizar otras versiones de OpenJDK en lugar de la 17, adapte la ruta en consecuencia.
Conclusión
En este tutorial, ha aprendido a instalar Java 17 en un sistema Ubuntu 20.04. Si necesita más información sobre el lenguaje Java, consulte su documentación oficial.