## Modificar un Fichero de Manifiesto

### El comando de la herramienta Jar

La herramienta Jar te permite mezclar el contenido de un fichero de manifiesto pre-existente con el fichero de manifiesto por defecto que se genera cuando se crea un fichero JAR.

Podrías querer producir un fichero de menifiesto que no fuera por defecto, por ejemplo, añadiendo una cabecera de propósito especial que permita a tu fichero JAR realizar una función particular. Puedes ver ejemplos de algunas cabeceras de propósito especial en la sección Entender el Manifiesto.

El comando básico tiene este formato:

    jar cmf manifest jar-file input-file(s)

Echemos un vistazo a las opciones y argumentos utilizados en este comando:

- La opción c indica que quieres crear un fichero JAR.
- La opción m indica que quieres mezclar información de un fichero de manifiesto existente en el fichero de manifiesto del fichero JAR que estás creando.
- La opción f indica que quieres que la salida vaya a un fichero (el fichero Jar que estás creando), en vez de a stdout.
- manifest es el nombre (o path y nombre) del fichero de manifiesto existente cuyo contenido quieres incluir en el manifiesto del fichero JAR.
- jar-file es el nombre que quieres para el fichero JAR resultante.
- El argumento input-file(s) es una lista delimitada por espacios de los ficherps que quieres añadir a tu fichero JAR.

Las opciones c, m, y f pueden aparecer en cualquier orden, pero no debe existir ningún espacio entre ellas.

### Un ejemplo

En la versión 1.2 de la plataforma JavaTM, los paquetes dentro de ficheros JAR pueden sellarse opcionalmente, lo que significa que todas las clases definidas en un paquete deben estás archivadas en el mismo fichero JAR. Por ejemplo, podrías querer sellar un paquete, para asegurar la consitencia de versiones entre las clases de tu software.

Un paquete puede sellarse añadiendo la cabecera Sealed:

    Name: myCompany/myPackage/
    Sealed: true

Para almacenar la cabecera Sealed en el manifiesto de un fichero JAR, primero necesitas escribir un fichero de manifiesto con las cabeceras apropiadas. Realmente, el fichero que escribas no tiene que ser un fichero de manifiesto completo; puede contener sólo suficiente información para que la herramienta Jar sepa dónde y qué información mezclar dentro del fichero de manifiesto por defecto.

Supongamos, por ejemplo, que tu fichero JAR es para contener estos cuatro paquetes:

    myCompany/firstPackage
    myCompany/secondPackage
    myCompany/thirdPackage
    myCompand/fourthpackage

y que quieres sellar firstPackage y thirdPackage. Para hacer esto, deberías escribir un fichero de manifiesto parcial con este contenido:

    Name: myCompany/firstPackage/
    Sealed: true

    Name: myCompany/thirdPackage/
    Sealed: true

Luego supongamos que:

- que has llamado a tu manifiesto parcial myManifest
- el fichero JAR que quieres crear se llamará myJar.jar
- El directorio actual es el directorio padre de myCompany

Podrías crear el fichero JAR con este comando:

    jar cmf myManifest myJar.jar myCompany

El aspecto resultante del fichero de manifiesto de myJar.jar dependerá de la versión del JDK que estés utilizando. En cualquier caso, la información de sellado, será incluida para firstPackage y thirdPackage.

Ozito