|
![]() |
jar |
Anterior | Siguiente |
jar.exe Combina varios archivos en un solo archivo JAR. jar [opciones] [manifest] destino fichero [fichero] jar es una aplicación Java que combina múltiples ficheros en un solo fichero JAR. Es una herramienta de propósito general basada en la compresión en formato ZIP. jar fue diseñada fundamentalmente para facilitar el empaquetamiento de applets Java o aplicaciones en un solo archivo. Cuando los componentes de un applet o aplicación (ficheros .class, de imágenes, de sonidos) se combinan en un solo fichero, pueden ser descargados en una sola transacción HTTP por el navegador, en vez de tener que realizar una nueva conexión cada vez que se deba enviar o recoger cada uno los ficheros individuales. Esto reduce el tiempo de descarga del applet, y como además los ficheros están comprimidos, se contribuye a reducir más todavía el tiempo en que se realiza la descarga. Además, se permite la incorporación de marcas adicionales en el fichero para que pueda ser identificado el autor del applet y se pueda autentificar origen del applet. La sintaxis de esta herramienta es muy semejante a la sintaxis del comando tar que se utiliza en sistemas Unix. Los tres tipos de ficheros que se indican en la invocación de la herramienta jar son:
Una llamada típica sería: % jar cf mificherojar *.class En este ejemplo, todos los ficheros de clases Java en el directorio en que nos encontremos se agruparán en el fichero mificherojar. Un fichero manifest será generado automáticamente por jar y siempre será la primera entrada en el fichero jar. Por defecto, el fichero se llama META-INF/MANIFEST.INF. El fichero manifest es el lugar donde se almacenará cualquier información adicional referente al archivo. Si hay un fichero manifest ya existente que queremos que sea utilizado por jar para el nuevo archivo a crear, se puede indicar a través de la opción -m: % jar cmf miFicheroManifest miFicheroJar *.class Es muy fácil ver y procesar el contenido del fichero manifest, porque utiliza el formato ascii RFC822.
Si cualquiera de los ficheros es un directorio, entonces se procesará el contenido de ese directorio. Para añadir ficheros en un directorio determinado a un archivo: C:\FUENTES\JAVA>dir Directorio de C:\Fuentes\Java . <DIR> 14/02/97 3:01 . .. <DIR> 14/02/97 3:01 .. TAZA5 GIF 3.965 15/12/96 20:53 Taza1.gif TAZA2 GIF 4.073 15/12/96 20:53 Taza2.gif TAZA3 GIF 4.058 15/12/96 20:53 Taza3.gif TAZA4 GIF 4.028 15/12/96 20:53 Taza4.gif TAZA1 GIF 3.895 15/12/96 20:53 Taza5.gif TAZA6 GIF 4.054 15/12/96 20:53 Taza6.gif TERCIO GIF 1.640 15/12/96 20:53 Tercio.gif TAZA~1 CLA 2.382 19/12/96 13:08 Taza.class GUITARRA AU 52.850 19/12/96 13:08 Guitarra.au 9 archivo(s) 80.945 bytes 2 directorio(s) 344.834.048 bytes libres C:\FUENTES\JAVA>jar cvf fichero.jar * adding: Taza1.gif adding: Taza2.gif adding: Taza3.gif adding: Taza4.gif adding: Taza5.gif adding: Taza6.gif adding: Tercio.gif adding: Taza.class adding: Guitarra.au C:\FUENTES\JAVA> Si se tienen directorios separados para las imágenes, los ficheros de sonido y las clases Java, se puede componer un solo fichero jar con todo el contenido de esos directorios: C:\FUENTES\JAVA>dir Directorio de C:\Fuentes\Java . <DIR> 14/02/97 3:01 . .. <DIR> 14/02/97 3:01 .. IMAGENES <DIR> 14/02/97 3:13 imagenes SONIDO <DIR> 14/02/97 3:13 sonido CLASES <DIR> 14/02/97 3:13 clases 0 archivo(s) 0 bytes 5 directorio(s) 344.686.592 bytes libres C:\FUENTES\JAVA>jar cvf fichero.jar imagenes clases sonido adding: imagenes/Taza1.gif adding: imagenes/Taza2.gif adding: imagenes/Taza3.gif adding: imagenes/Taza4.gif adding: imagenes/Taza5.gif adding: imagenes/Taza6.gif adding: imagenes/Tercio.gif adding: clases/Taza.class adding: sonido/Guitarra.au C:\FUENTES\JAVA> Se pueden ver las entradas que se han incorporado el fichero jar utilizando la opción t: C:\FUENTES\JAVA>jar tf fichero.jar META-INF/MANIFEST.INF imagenes/Taza1.gif imagenes/Taza2.gif imagenes/Taza3.gif imagenes/Taza4.gif imagenes/Taza5.gif imagenes/Taza6.gif imagenes/Tercio.gif clases/Taza.class sonido/Guitarra.au C:\FUENTES\JAVA> JAR es el acrónimo de Java ARchive, como se ha indicado. Es un formato de ficheros basado en el popular formato de compresión de ficheros ZIP, y se utiliza para poden contener varios ficheros en uno solo. Aunque JAR se pueda utilizar también como herramienta de compresión, la razón principal de su desarrollo e implantación ha sido la de evitar sobrecarga en la red, haciendo que todos los applets Java y sus componentes (ficheros .class, imágenes y sonidos) puedan ser descargados por el navegador en una sola transacción http, en lugar de tener que abrir una conexión por cada una de las piezas. Esto acelera en gran medida la descarga del applet y su puesta en marcha sobre una página web. El formato JAR también soporta compresión, lo que reduce el tamaño del fichero a enviar y contribuye a reducir aún más el tiempo de descarga del applet. Además, los ficheros individuales que se incorporen en un fichero JAR puedes estar firmados digitalmente por el autor del applet para autentificar su origen. JAR es, por lo tanto:
JAR es un archivo ZIP, tal como lo define Pkware, conteniendo un fichero manifest y potencialmente, ficheros firmados. La acomodación del código html en la marca APPLET para que soporte ficheros JAR es muy sencilla. El fichero JAR en el servidor es identificado mediante el parámetro ARCHIVE, donde se debe indicar el directorio y nombre del fichero JAR que contiene la información correspondiente al applet que indica la marca de la página. Por ejemplo: <APPLET CODE="MiApplet.class" ARCHIVE="jars/miapplet.jar" WIDTH="640" HEIGHT="180" </APPLET> Obsérvese que el ya familiar parámetro CODE="MiApplet.class" todavía sigue presente. El parámetro CODE, como siempre, indica el nombre del applet donde comienza la ejecución. Sin embargo, el fichero class del applet, y todos los ficheros .class que lo acompañen, serán cargados desde el fichero JAR. Una vez que el fichero es identificado, será descargado y separado en sus componentes individuales. Durante la ejecución del applet, cuando una nueva clase, imagen o sonido sea requerido por el applet, se buscará en primer lugar en los archivos que estaban asociados al applet en el fichero JAR que contenía al propio applet durante la descarga. Si el fichero no se encontrase entre estos archivos, pasaría a realizarse una búsqueda normal en el servidor del applet, relativa al parámetro CODEBASE, tal como se realiza cuando no se indica nada especial, por defecto. El parámetro ARCHIVE soporta varios ficheros JAR, separados por comas (,). Cada uno de los ficheros es descargado cuando le toque. Por ejemplo: <APPLET CODE="MiApplet.class" ARCHIVE="clases.jar,imágenes.jar,sonidos.jar" WIDTH="640" HEIGHT="180" </APPLET> |
|