## 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
- Unir y Desplegar los Beans Enterprise
- Unir y Desplegar el Applet Administration

### Unir y Desplegar los Ficheros HTML

Aquí hay una lista de ficheros HTML que crean el interface de usuario de la aplicación subasta:

- all.html
- close.html
- details.html
- index.html
- juggler.med.gif
- new.html
- registration.html
- search.html
- sell.html

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.

- auction.AuctionServlet.class
- auction.AuctionItem.class
- auction.AuctionItemBean.class
- auction.AuctionItemHome.class
- auction.AuctionItemPK.class
- auction.DeploymentDescriptor.txt
- AuctionItemBeanHomeImpl_ServiceStub.class
- WLStub1h1153e3h2r4x3t5w6e82e6jd412c.class
- WLStub364c363d622h2j1j422a4oo2gm5o.class
- WLSkel1h1153e3h2r4x3t5w6e82e6jd412c.class
- WLSkel364c363d622h2j1j422a4oo2gm5o.class

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.

- registration.Registration.class
- registration.RegistrationBean.class
- registration.RegistrationHome.class
- registration.RegistrationPK.class
- auction.DeploymentDescriptor.txt
- RegistrationBeanHomeImpl_ServiceStub.class
- WLStub183w4u1f4e70p6j1r4k6z1x3f6yc21.class
- WLStub4z67s6n4k3sx131y4fi6w4x616p28.class
- WLSkel183w4u1f4e70p6j1r4k6z1x3f6yc21.class
- WLSkel4z67s6n4k3sx131y4fi6w4x616p28.class

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.

- bidder.Bidder.class
- bidder.BidderHome.class
- bidder.BidderBean.class
- auction.DeploymentDescriptor.txt
- BidderBeanEOImpl_ServiceStub.class
- BidderBeanHomeImpl_ServiceStub.class
- WLStub1z35502726376oa1m4m395m4w5j1j5t.class
- WLStub5g4v1dm3m271tr4i5s4b4k6p376d5x.class
- WLSkel1z35502726376oa1m4m395m4w5j1j5t.class
- WLSkel5g4v1dm3m271tr4i5s4b4k6p376d5x.class

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.

- seller.Seller.class
- seller.SellerHome.class
- seller.SellerBean.class
- auction.DeploymentDescriptor.txt
- SellerBeanEOImpl_ServiceStub.class
- SellerBeanHomeImpl_ServiceStub.class
- WLStub3xr4e731e6d2x3b3w5b693833v304q.class
- WLStub86w3x4p2x6m4b696q4kjp4p4p3b33.class
- WLSkel3xr4e731e6d2x3b3w5b693833v304q.class
- WLSkel86w3x4p2x6m4b696q4kjp4p4p3b33.class

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