El archivo de manifiesto es un archivo de texto con meta-información. Es un archivo donde el programador introduce información sobre el própio programa (por eso es meta-información) y le da una serie de explicaciones a java para que java sepa que es cada cosa.
Al crear un paquete .jar cramos una colección de clases. Pero nosotros queremos que java sepa que cosa son esas clases y por ejemplo, cual es la clase principal para poder iniciar nuestro programa. Esa información se guarda en el archivo manifiesto. Una vez creado el jar con la meta-información adecuada podremos invocarlo directamente y ejecutar la aplicación creada.
Sintaxis
Manifest-Version: 1.0 Main-Class: NombreDeClase Name: NombreDeClase.class Java-Bean: True
La primera linea es sólamente para indicar que es un manifiesto y la version que es. Por defecto es 1.0 A partir de ahi se pueden ir especificando clases y diciendo lo que son. En el caso de que las clases formen parte de paquetes y esté bajo subdirectorios habrá que especificarlo.
Finalmente se crea el jar indicandole que queremos que incluya el archivo de manifiesto que nosotros hemos creado.
jar cfm NombreDelJar.jar Manifiesto.mf clases
Si posteriormente desempaquetamos el jar creado veremos que nos ha creado una carpeta llamada META-INF donde hay un archivo MANIFEST.MF creado a partir de la información que nosotros le hemos proporcionado