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:

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:

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