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.
0 comentarios:
Publicar un comentario