Empaquetado de Aplicaciones JEE - Archivos JAR


Introducción

Las aplicaciones de Java Empresarial pueden empaquetarse para su despliegue y distribución en tres formatos:

  • Archivos Jar (Java Archive)
  • Archivos War (Web Archive)
  • Archivos Ear (Enterprise Archive)

En esencia, los tres formatos son archivos ZIP con la extensión cambiada. Los tres contienen archivos de clases Java compilados (.class), pueden contener archivos fuentes Java (.java) y de otro tipo, organizados en una estructura de carpetas.

El objetivo de estos archivos es el despliegue eficiente de las aplicaciones Java junto con los recursos que necesitan para su ejecución.

Archivos JAR

Es la mínima unidad para empaquetar una aplicación Java. Los elementos componentes en un archivo jar pueden descargarse en una sola petición del entorno de ejecución, siendo esto más eficiente que la descarga de muchos archivos de clases no comprimidos.

El jar puede contener en la carpeta META-INF un archivo texto denominado MANIFEST.MF o manifiesto que contiene información de cómo utilizar el jar.

Por ejemplo, un manifiesto puede contener la ruta a otras clases (CLASSPATH) o información de firma digital. Por razones de seguridad a veces es conveniente que un jar sea firmado digitalmente, lo cuál previene que su contenido sea cambiado de manera maliciosa. El proceso consiste en obtener las sumas de chequeo (checksum) de cada uno los archivos del jar y firmarlas en el manifiesto.

La máquina virtual de java en el momento en que se ejecuta el jar, puede rechazar los archivos de clase cuya suma de chequeo no coincida con la que esta especificada en el manifiesto del jar.

Básicamente el archivo jar contiene dos carpetas: una carpeta META-INF que puede contener el manifiesto y otra carpeta que es la raíz del paquete Java que estamos encapsulando. Si nuestro paquete Java es por ejemplo org.apache.utils.axis, en el jar tendremos la carpeta org, dentro la carpeta apache, dentro la carpeta utils y por último la carpeta axis con los archivos .class que correspondientes a los archivos .java que tenemos en el proyecto.

Estructura de un archivo JAR




Comandos útiles con archivos jar

Para crear un archivo JAR a partir de un conjunto de clases, nos movemos a la carpeta o directorio donde están incluidos estos archivos y tecleamos:

jar -cvf ejemplo.jar *

Para extraer los archivos de un jar:

jar –xf ejemplo.jar

Para listar los archivos en un jar:

jar –tvf ejemplo.jar

Para ejecutar un archivo jar (si es ejecutable):

java –jar ejemplo.jar

El comando jar viene incluido con el JDK.

Creando un jar desde Eclipse

Lo primero es seleccionar la carpeta que contiene nuestro proyecto y con el botón derecho buscamos la opción del menú "Export..."








Elegimos exportar los recursos a un fichero JAR que va a ser creado en nuestro disco local. Seleccionamos "Java", luego "JAR File" y luego click en 
"Next"





En la siguiente pantalla seleccionamos los recursos que vamos a exportar al archivo RAR. En este caso he seleccionado el paquete com.ejemplo.

También especificamos que queremos exportar los archivos .class y los recursos asociados, elegimos la ruta donde vamos a crear el archivo y marcamos además que el contenido del JAR sea comprimido para ocupar el menos espacio posible.



Por último especificamos que el JAR a exportar no contenga ni Warnings (avisos) ni errores de compilación para evitar un mal funcionamiento a la hora de ejecutarse. Aquí terminamos el asistente de generación del JAR con un click al botón "Finish".



Por último si le echamos un vistazo al archivo JAR generado, que he llamado EjemploJar.jar podemos ver la carpeta com que es la raíz del paquete com.ejemplo y la carpeta META-INF.  Explorando dentro de estas carpetas podemos encontrar el archivo .class compilado dentro de las carpetas del paquete y el archivo MANIFEST.MF  em META-INF.






posted under , , |

0 comentarios:

Publicar un comentario

Entrada más reciente Entrada antigua Inicio