Curso Jakarta EE 9 (2). Instalación del software.

logo Jakarta EE

Antes de crear el primer proyecto de ejemplo, repasemos los programas necesarios y las (ingratas) tareas de instalación. Solo voy a contemplar Linux y Windows 10, pero todo el software está disponible para macOS.

>>>> ÍNDICE <<<<

JAVA

La versión que vamos a utilizar es la número 11, la última publicada (septiembre de 2018) en el momento de escribir estas líneas con soporte de larga duración (LTS). Voy a usar OpenJDK, implementación de código abierto en la que se basa incluso la versión comercial de Java de Oracle, con el binario empaquetado y distribuido por AdoptOpenJDK. Es la distribución más popular y cuenta con una buena política de actualizaciones (*). Otras alternativas son Oracle, Amazon Coretto y Zulu. De todas formas, en el curso lo importante es que usemos siempre Java 11, con independencia del proveedor (“vendor”) o versión exacta.

(*) Las versiones LTS tienen bastantes años de soporte y son las “oficiales” que deben usarse en entornos productivos. Mientras tanto, las versiones intermedias solo tienen soporte hasta que se publique la próxima (unos seis meses). Están pensadas para desarrollar y probar de forma progresiva todas las novedades que se incluirán en las LTS, publicadas con una periodicidad aproximada de tres años.

Windows

El asistente en formato msi de AdoptOpenJDK se encarga de todo, incluyendo la creación de la variable de entorno JAVA_HOME si no existe todavía. En la siguiente pantalla podemos modificar esto último al realizar la instalación.

Linux

AdoptOpenJDK dispone de repositorios e instrucciones de instalación para las distribuciones Linux más importantes (Debian, Ubuntu, Linux Mint, Fedora, Centos, SUSE). Pero yo recomiendo sdkman, disponible también en macOS. Se trata de una utilidad magnífica que gestiona herramientas y APIs de desarrollo centradas en el mundo Java.

Una vez instalado sdkman siguiendo las instrucciones, listamos las opciones.

$ sdk list java

Instalamos una de las candidatas con el identificador de la columna situada a la derecha. Usaré la más reciente de AdoptOpenJDK para Java 11.

$ sdk install java 11.0.10.hs-adpt

Si es la primera vez que instalamos Java en el equipo, sdkman la configura como la instalación predeterminada y se mostrarán los siguientes mensajes al finalizar el proceso.

Installing: java 11.0.10.hs-adpt
Done installing!

Setting java 11.0.10.hs-adpt as default.

En caso contrario, preguntará si queremos que la nueva instalación lo sea.

Do you want java 11.0.10.hs-adpt to be set as default? (Y/n): 

La versión por omisión puede cambiarse en cualquier momento.

$ sdk default java 11.0.10.hs-adpt

Default java version set to 11.0.10.hs-adpt

Por último, debemos comprobar que todo ha ido bien.

$ java -version
openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.10+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.10+9, mixed mode)
$ javac -version
javac 11.0.10

Entornos de desarrollo

Algunos programadores presumen, y en ciertos casos, sospecho, por puro esnobismo, de trabajar con scripts para línea de comandos y editores de texto como Emacs o Sublime Text. Si les resulta cómodo y productivo, adelante.

Sin embargo, creo que las ventajas de utilizar un entorno de desarrollo gráfico (IDE) son innegables, máxime si cabe en el caso de un principiante que recién comienza a programar. Permiten editar y formatear cualquier fichero de código y ofrecen sugerencias al ir escribiéndolo. Pero, sobre todo, con ellos podemos compilar y ejecutar los proyectos, lanzar las pruebas automáticas, trabajar con el sistema de control de versiones, etc, con total comodidad y sin realizar configuraciones demasiado complejas.

Varios IDEs para Java

No hace falta un conocimiento profundo de las características de un IDE para conseguir una alta productividad. Por ello, veremos cómo usar los dos más populares entre los programadores Java, aunque de forma superficial. Me conformo con que el lector sepa ejecutar las pruebas y desplegar las aplicaciones en el servidor WildFly. En todo caso, los ejemplos son proyectos Maven estándar que pueden importarse en cualquier IDE compatible.

Mi primera opción es IntelliJ Ultimate. Es el IDE para Java -o más bien, lenguajes de la jvm- de la empresa JetBrains, especializada en este tipo de productos, y principal desarrolladora del lenguaje Kotlin del que tanto se habla. Pero tiene un pequeño inconveniente: es un producto comercial que requiere una suscripción anual. Hay una versión gratuita (IntelliJ Community) que no permite trabajar directamente con servidores, ni incluye herramientas de integración con Jakarta EE y bases de datos, entre otras carencias detalladas en esta página.

Debido a lo anterior, voy a contemplar el uso de Eclipse, el celebérrimo IDE de la fundación Eclipse, valga la redundancia. Es de código abierto y, además de Java, se puede emplear con otros lenguajes.

Aunque ambas son excelentes opciones, aconsejo IntelliJ. Incluye de serie muchas características que en Eclipse se obtienen instalando complementos, las herramientas de refactorización son más fiables, el componente para trabajar con git es mejor… En general, resulta más ergonómico y fácil de utilizar a pesar de la miríada de funcionalidades proporcionadas. Por supuesto, es una opinión muy personal, y si tenemos la oportunidad de elegir, lo mejor será evaluar los dos.

IntelliJ y Eclipse tienen instaladores gráficos para varias plataformas. En el caso del segundo, debo hacer los siguientes apuntes.

  • Seleccionamos “Enterprise Java Developers” porque incluye ciertos complementos imprescindibles para desarrollar aplicaciones web y nos evita tener que instalarlos de forma manual.

     

  • El asistente permite elegir la instalación de Java con la que se ejecutará el IDE, y ofrece la posibilidad de descargar una JRE sin que interfiera con las que tengamos en el equipo. Podemos dejar la opción seleccionada; para compilar nuestros proyectos ya veremos cómo configurar una JDK específica.  
  • Cuando Eclipse arranque por primera vez, hay que crear un espacio de trabajo o “workspace” en el que guardará tanto su configuración como la de los proyectos. Es posible tener múltiples espacios y todos ellos son independientes; recomiendo crear uno específico con los ejemplos del curso. Marcamos el checkbox para usar por omisión el que indiquemos y evitar tener que seleccionarlo cada vez que iniciemos el IDE.

Otra posibilidad más directa consiste en descargar el IDE en un fichero comprimido y proceder a su descompresión. En estos momentos, IntelliJ permite seleccionar el formato en el botón de descarga, mientras que los ficheros para Eclipse están en este enlace. Vuelvo a subrayar la recomendación de instalar “Eclipse IDE for Enterprise Java Developers”.

Maven

Vamos a configurar y construir los proyectos con la herramienta para línea de comandos Apache Maven. Es más, solo necesitamos Java y Maven. Los IDEs son accesorios tal y como señalé párrafos atrás.

Los proyectos del curso incluyen una pequeña instalación de Maven, llamada “wrapper” (envoltorio), de tal modo que no necesitamos tener esta herramienta en el equipo. Tampoco la requieren IntelliJ y Eclipse pues ambos traen lo necesario. No obstante, si queremos tener Maven en nuestra computadora, algo muy recomendable como programadores Java que somos, indico los pasos a seguir.

Windows

Fácil: descargar y descomprimir. Para usar Maven con mayor comodidad, debemos añadir su carpeta “bin” al PATH de Windows.

En el menú de inicio, escribiremos “variable” para acceder a la ventana con las propiedades del sistema.

Abrimos la pantalla con las variables de entorno pulsando el botón “Variables de entorno…”.

Configuramos Maven para todos los usuarios del equipo creando, en primer lugar, una nueva variable llamada “MAVEN_HOME” con la ruta a la carpeta con la instalación que vamos a considerar la predeterminada del sistema.

Utilizando esa variable, añadimos al “Path” la ruta a la carpeta bin con el ejecutable de Maven.

Tras guardar los cambios, comprobamos que Maven puede usarse desde cualquier carpeta.

Linux

Podemos seguir el procedimiento anterior consistente en descomprimir Maven y configurar las variables de entorno -Internet está lleno de tutoriales al respecto- o bien instalar la versión disponible en los repositorios de nuestra distribución. Con todo, prefiero recurrir a sdkman. La instalación es análoga a la que hemos realizado para Java, incluyendo la configuración de la versión predeterminada.

$ sdk list maven
====================================================
Available Maven Versions
====================================================
     3.6.3
     3.6.2
     3.6.1

$ sdk install maven 3.6.3

Comprobamos la instalación.

$ mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /home/dani/.sdkman/candidates/maven/current
Java version: 11.0.10, vendor: AdoptOpenJDK, runtime: /home/dani/.sdkman/candidates/java/11.0.10.hs-adpt
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-66-generic", arch: "amd64", family: "unix"

WildFly

En el capítulo anterior ya comentamos que WildFly será nuestro servidor de aplicaciones Jakarta EE. En concreto, la versión 22 (la 23 ahora mismo es una beta), variedad Preview, porque la “estándar” todavía no es compatible con Jakarta EE 9. Oficialmente, se recomienda utilizar WildFly 22 con Java 11. La versión mínima es Java 8, y debería ir bien con Java 13.

No hay que realizar ninguna instalación, tan solo descargar y descomprimir. En la próxima entrega mostraré varias formas de desplegar aplicaciones en este servidor.

>>>> ÍNDICE <<<<

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .