¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Java
  3. Despliegue de aplicaciones
Extrait - Java Los fundamentos del lenguaje (con ejercicios corregidos)
Extractos del libro
Java Los fundamentos del lenguaje (con ejercicios corregidos) Volver a la página de compra del libro

Despliegue de aplicaciones

Archivos de Java

1. Presentación

Un archivo de Java es un formato de archivo particular que permite agrupar en un único archivo a varios. En general, se agrupan de esta manera todos los archivos necesarios para el funcionamiento de una aplicación. Esto comprende por supuesto todos los archivos .class, pero también todos los demás recursos indispensables para el correcto funcionamiento de la aplicación. Esta posibilidad de agrupación proporciona numerosas ventajas para el despliegue de aplicaciones.

  • La primera y seguramente más notable se encuentra en el hecho de que, para desplegar una aplicación en otro puesto cliente, solo se necesita copiar un único archivo, incluso si la aplicación exige para su funcionamiento varios recursos organizados en forma de árbol de manera precisa. Se crea este árbol en el interior del archivo y no necesita reproducirse en el puesto cliente.

  • Los archivos pueden comprimirse para optimizar su almacenamiento y su intercambio a través de una red.

  • La aplicación puede incorporar todos los recursos necesarios y un entorno minimalista de ejecución de Java necesario para la ejecución de la aplicación sin tener que instalar el JRE.

2. Manipulación de un archivo

La manipulación de un archivo de Java (archivo jar - Java ARchive) se basa en los mismos principios que la manipulación de un archivo en el mundo Unix con el comando tar. Las opciones del comando jar que permiten manipular un archivo Java son, por otra parte, extrañamente similares a las del comando tar de Unix. El formato utilizado internamente por los archivos es también muy conocido, ya que se trata del formato ZIP. Paralelamente, un archivo de Java puede ser procesado por herramientas destinadas a la manipulación de archivos ZIP.

El comando estándar de manipulación de archivo es el comando jar. Forma parte de las herramientas proporcionadas con el JDK que se puede encontrar en el directorio bin de la instalación de JDK.

a. Creación de una aplicación

Antes de crear un archivo, primero debe crear una aplicación. Los ejemplos en el capítulo se basarán en una aplicación de demostración que hace consultas a una base de datos. La estructura del proyecto es la siguiente:

images/cap7_pag2.png

La aplicación consta de una sola clase TestPreparedStatement...

Creación de una aplicación autónoma con jlink

Desde Java 9, la API de Java es modular. Una de las consecuencias es que, en tiempo de ejecución, solo es necesario cargar los módulos de los que depende una aplicación para que esta funcione. Oracle fue aún más lejos al hacer posible crear un árbol de directorios y archivos que contengan estos módulos, la herramienta java y el archivo de una aplicación. Este directorio se puede comprimir o integrar fácilmente en un instalador para implementarlo en las máquinas de destino. Un ejemplo de utilización de la nueva herramienta jpackage mostrará la creación de un instalador, un poco más adelante en este capítulo.

Para crear el directorio y el árbol de archivos, se requiere la herramienta jlink. También se utilizan herramientas adicionales: jdeps y jmod.

  • jmod le permite crear el módulo correspondiente a la aplicación desde un archivo. 

  • jdeps le permite determinar los módulos de los que depende la aplicación.

  • jlink le permite crear el directorio y la estructura de árbol de archivos.

Crear una aplicación autónoma requiere varios pasos:

  • La creación de un archivo de Java correspondiente al código de la aplicación, sin definir un punto de entrada (sin atributo Main-Class en el archivo manifest). 

  • La creación de un archivo de módulo (extensión .jmod) desde el archivo de Java. 

  • La búsqueda de dependencias (módulos), necesarias para la correcta ejecución de la aplicación con la herramienta jdeps.

  • Creación de la estructura de árbol de directorios y archivos a bordo de la aplicación y los módulos necesarios.

  • Adición manual de dependencias que no son módulos de Java. Este es el caso del controlador JDBC, en nuestro ejemplo.

1. La creación del archivo de Java

La creación del archivo...

Externalización de los argumentos

La aplicación así empaquetada es operativa. El principal problema pendiente es la cadena de conexión a la base de datos, que se escribe en la clase es.eni.editions.jdbc.consulta.TestPreparedStatement. Es necesario externalizarlo para poder modificarlo según el contexto. Esto requiere modificar el programa antes de volver a empaquetarlo.

1. Creación del archivo de configuración

En Java, los archivos de configuración normalmente son los archivos properties o los archivos xml. Para los fines de este libro, se utilizó un archivo properties.

Un archivo de este tipo contiene pares clave/valor, escritos en una línea de la siguiente forma:

unaClave=unValor   
otraClave=otroValor 

El separador entre la clave y el valor es el carácter =.

Para crear dicho archivo, siga este procedimiento:

 Cree un directorio conf (el nombre no tiene ninguna importancia) en la raíz del proyecto. No lo coloque en el directorio src porque no tiene el propósito de ser incorporado al archivo.

 Haga clic con el botón derecho en este directorio y seleccione el menú New - File.

 Introduzca un nombre para el archivo (configuration.properties, por ejemplo).

 Confirme haciendo clic en Finish.

Al final de esta etapa, el proyecto debe tener el siguiente aspecto:

images/cap7_pag24_b.png

Observe la presencia del directorio conf al mismo nivel que los directorios...

Creación de un instalador con jpackage

Ha aparecido una nueva herramienta en el ecosistema Java: jpackage. El objetivo de esta herramienta es crear un instalador que permita facilitar el despliegue de una aplicación. Esta herramienta se utiliza para generar un instalador adaptado a la plataforma sobre la que se ejecuta. En una máquina Linux, el archivo generado de forma predeterminada es un archivo *.deb.

A continuación, este archivo se puede ejecutar para instalar la aplicación que contiene, usando el siguiente comando:

sudo apt install ./miArchivoDExtensionDeb 

La herramienta jpackage contiene una gran cantidad de opciones para configurar el instalador. La presentación de la herramienta está disponible en la documentación oficial en el sitio web de Oracle, en la siguiente dirección: https://docs.oracle.com/en/java/javase/18/jpackage/packaging-overview.html

En particular, puede llamar a jlink para realizar operaciones similares a las presentadas en la sección anterior. Para el desarrollador que desee controlar el despliegue de principio a fin y eventualmente realizar personalizaciones como la de la sección anterior, es posible mantener el uso directo de la herramienta jlink. En este contexto, la función principal de jpackage será crear el instalador incorporando la imagen generada por jlink.

El comando simplificado es el siguiente:

images/cap7_pag30.png

El archivo generado en el entorno Linux es:

miinstalador-de-miapli_1.0-1_amd64.deb...

Conclusión

Este capítulo le ha permitido descubrir algunos aspectos del despliegue de una aplicación escrita en Java. En un contexto profesional, con un proyecto más complejo, será necesario por supuesto profundizar en el tema. Sin embargo, estas pocas páginas lo ayudan a comenzar.