Formato de Ficheros JAR

El formato de ficheros Java JAR es un formato de compresión y empaquetado de ficheros y una herramienta para unir ficheros ejecutables con otros ficheros relacionados con la aplicación por eso pueden desplegarse en una sóla unidad. La aplicación de subasta, tiene tres unidades o ficheros para desplegar en tres diferentes localizaciones.
  1. Los ficheros HTML que crean el interface de usuario de la aplilcación desplegado en una localización accesible bajo el servidor web.

  2. Los Beans Enterprise desplegado en una localización interna accesible a nuestro servidor de JavaBeans EnterpriseTM.

  3. El Applet Administration desplegado a una localización interna accesible para los administradores de la subasta donde es ejecutado por sus navegadores
Esta sección nos muestra cómo usar la herramienta jar unir y desplegar los ficheros de la aplicación.bundle and deploy the application files.

Unir y Desplegar los Ficheros HTML

Aquí hay una lista de ficheros HTML que crean el interface de usuario de la aplicación subasta: Aquí está el comando jar que los une. Todo va en un sólo fichero. Este comando se ejecuta en el mismo directorio que los ficheros. Si lo ejecutamos desde otro directorio distinto tenemos que especificar el path completo o relativo según corresponda.
  jar cvf HTML.jar all.html close.html details.html 
	index.html juggler.med.gif new.html 
        registration.html search.html sell.html
jar es el comando jar. Si tecleamos jar sin opciones, optenemos la siguiente pantalla de ayuda. Podemos ver de esta pantalla que las opciones cf del comando jar crean un nuevo fichero JAR llamando HTML.jar y pone la siguiente lista de ficheros en él. El nuevo fichero JAR se sitúa en el directorio actual.
kq6py% jar
Usage: jar {ctxu}[vfm0M] [jar-file] [manifest-file] 
                   [-C dir] files ...
Options:
  -c  create new archive
  -t  list table of contents for archive
  -x  extract named (or all) files from archive
  -u  update existing archive
  -v  generate verbose output on standard output
  -f  specify archive file name
  -m  include manifest information from specified 
        manifest file
  -0  store only; use no ZIP compression
  -M  Do not create a manifest file for the entries
  -C  change to the specified directory and include 
        the following file
If any file is a directory then it is processed 
recursively. The manifest file name and the archive 
file name needs to be specified in the same order 
the 'm' and 'f' flags are specified.

Example 1: to archive two class files into an archive 
     called classes.jar:
     jar cvf classes.jar Foo.class Bar.class
Example 2: use an existing manifest file 'mymanifest' 
     and archive all the files in the foo/ director
     into 'classes.jar':
     jar cvfm classes.jar mymanifest -C foo/ .
Para desplegar los ficheros HTML, todo lo que tenemos que hacer es mover el fichero HTML.jar a un directorio públicamente accesible bajo el servidor web y descomprimirlo:
  jar xf HTML.jar

Nota: Si hemos incluido un path completo o relativo cuando hemos añadido los ficheros al fichero JAR, los ficheros se situarán en la misma estructura de directorio cuando los desempaquetemos.

Unir y Desplegar los Beans Enterprise

Algunoes servidores JavaBeans Enterprise pueden crear el fichero JAR por nosotros. Sin embargo, si el nuestro no lo hace o si que sólo queremos aprender a hacerlo, esta sección describe los pasos.

Aquí están los ficheros del lado del servidor que necesitamos para desplegar los Beans de Enterprise. Esta lista está tomanda de la aplicación de subasta original descrita en el Capítulo 2: Código de la Aplicación Subasta antes de cualquier modificación hecha para hacer los Beans Enterprise controlados por contenedor. Observa la inclusión del descriptor de desarrollo, y de las clases stub y skel del contenedor-generado.

Paquete auction

Aquí están los ficheros de aplicación del paquete auction que crean el servlet AuctionServlet y el Bean Enterprise AuctionItemBean. Como todos ellos van a ser instalados en un directorio auction accesible del servidor de producción JavaBeans Enterprise, los unimos todos juntos para que puedanser desempaquetados en un paso en el directorio destino y situados en el subdirectorio acution. Aquí está cómo unirlos. Toda va en una línea línea, y el comando se ejecuta un directorio por encima de donde se encuentran los ficheros class.
Unix:
  jar cvf auction.jar  auction/*.class

Win32:
  jar cvf auction.jar  auction\*.class
Una vez que el fichero JAR se ha copiado en el directorio de destino para los Beans Enterprise, lo desempaquetamos de esta forma. La extraccióncrea un directorio auction con los ficheros class denrtro.
  jar xv auction.jar

Paquete registration

Aquí están los ficheros de la aplicación en el paquete registration que crea el Bean Enterprise Registration. Aquí está como unirlo. Todo va en una línea y el comando se ejecuta un directorio por encima de donde se encuentran los ficheros class.
Unix:
  jar cvf registration.jar  registration/*.class

Win32:
  jar cvf registration.jar  registration\*.class
Una vez que el fichero JAR seha copiado al directorio de destino para los Beans Enterprise, los desempaquetamos de esta forma. La extracción crea un directorio registration con los fichero class dentro de él.
  jar xv registration.jar

Paquete bidder

Aquí están los ficheros de la aplicación en el paquete bidder que crean el Bean Enterprise Bidder. Aquí está cómo unirlos. Todo va en un línea y el comando se ejecuta un directorio por encima de donde se encuentran los ficheros class.
Unix:
  jar cvf bidder.jar  bidder/*.class

Win32:
  jar cvf bidder.jar  bidder\*.class
Una vez que el fichero JAR se ha copiado en el directorio de destino para los Beans Enterprise, lo desempaquetamos de esta forma. La extracción crea un directorio bidder con los ficheros class dentro de él.
  jar xv bidder.jar

Paquete seller

Aquí están los ficheros de la aplicación en el paquete seller que crea el Bean Enterprise Seller. Aquí está cómo unirlos. Todo va en un línea y el comando se ejecuta un directorio por encima de donde se encuentran los ficheros class.
Unix:
  jar cvf seller.jar  seller/*.class

Win32:
  jar cvf seller.jar  seller\*.class
Una vez que el fichero JAR se ha copiado en el directorio de destino para los Beans Enterprise, lo desempaquetamos de esta forma. La extracción crea un directorio seller con los ficheros class dentro de él.
  jar xv seller.jar

Unir y Desplegar el Applet Administration

La familia de ficheros del applet Administration consta de los ficheros AdminApplet.java y polfile.java.

Aquíe está el comando jar para unirlos. Todo va en una línea, y el comando se ejecuta dónde está el fichero de policia que es una directorio por encima de donde están los ficheros class.

Unix:
  jar cvf applet.jar admin/*.class polfile.java

Win32:
  jar cvf applet.jar admin\*.class polfile.java
Para desplegar el applet, copiamos el fichero applet.jar en el directorio de destino del applet y los extraemos de esta forma. La extracción crea un directorio admin con los ficheros del applet Administration dentro de él.
  jar xf applet.jar

Nota: El applet usa los APIs JDK 1.2. Necesita un fichero de policía para acceder a la impresora y Java Plug-In para ejecutarse en un navegador pre-JDK 1.2 . Puedes encontrar información sobre cómo ejecutar el applet con Java Plug-In y un fichero de policía en las siguientes páginas Plataforma Solaris y Plataforma Win32.

Ozito