You are on page 1of 2

El fichero de manifiesto

Para evitar tener que recordar el nombre de la clase con el main, se puede poner en un fichero especial

(llamado fichero de manifiesto) y meter este fichero dentro del jar. Para ello, escribimos un fichero de texto

con cualquier nombre (por ejemplo, manifiesto.txt) con el siguiente contenido

Main-Class: chuidiang.prueba.ClasePrincipal

A la hora de hacer el jar, lo metemos también

jar cmf manifiesto.txt fichero.jar fichero1.class fichero2.class


directorio1 directorio2

La opción m indica que el fichero que va detrás es el de manifiesto y el comando jar lo tratará de forma

especial. Si ponemos las opciones como en el ejemplo, es decir, mf, primero se pone el fichero de
manifiesto y luego el nombre del fichero jar. Si las ponemos al revés, es decir fm, entonces se pone

primero el nombre del fichero jar y luego el de manifiesto. El resto se supone que son ficheros o

directorios que se van a meter en el jar.

Una vez hecho esto, se ejecuta así

java -jar fichero.jar

La opción -jar indica que se debe buscar dentro del fichero .jar el fichero de manifiesto y ejecutar la clase

que se indica allí.

Ejecutar el jar desde windows

Podemos configurar windows para que abra los ficheros .jar con el comando javaw. Si instalamos java 5

esto se hace automáticamente. Si no, dando a "mi pc", "herramientas", "opciones de carpeta", "tipos de

archivo", buscamos o creamos JAR, "opciones avanzadas", "open", "modificar" y ponemos algo como esto

"C:\Archivos de programa\Java\jre1.5.0_06\bin\javaw.exe" -jar


"%1" %*

Con esto, dando doble click sobre un fichero jar que tenga fichero de manifiesto, se ejecutará el programa

java.

Depender de otros jar


A veces nuestro programa depende de otros jar que nos hemos bajado de algún sitio (un driver de base

de datos, log4j, etc). Para que todo funcione como debe, en el fichero de manifiesto podemos añadir otra

línea más

Main-Class: chuidiang.prueba.ClasePrincipal
Class-Path: otrofichero.jar otrofichero2.jar otrofichero3.jar

Creamos el jar como antes y listo.

Para que esto se ejecute correctamente, todos los jar, el nuestro y los adicionales, deben estar ubicado

en el mismo directorio. Ahora ya podemos ejecutar como antes.

Es posible dar a los jar paths relativos a nuestro jar principal. Por ejemplo

Main-Class: chuidiang.prueba.ClasePrincipal
Class-Path: lib/otrofichero.jar lib/otrofichero2.jar
lib/otrofichero3.jar

Esto hace que nuestro jar debe estar en un directorio que contenga un subdirectorio lib y dentro de este

los otros jar.

+-nuestro.jar
|
+-lib
|
+-otrofichero.jar
+-otrofichero2.jar
+-otrofichero3.jar

Meter otros ficheros en el jar

En el jar, además del fichero de manifiesto y los .class, podemos meter cualquier otro tipo de fichero. Por

ejemplo, se pueden meter imágenes .gif o fichero de propiedades .properties.

Para que nuestro código java pueda verlos, en vez de abrirlos de forma normal, debemos hacerlo a través

del class loader. Para ello, usando una clase que esté dentro del mismo fichero jar que contiene las

imagenes o fichero de propieades, hacemos algo como esto (no lo he probado, va de memoria).

ClassLoader classLoader = NombreClase.class.getClassLoader();


URL url= classLoader.getResource ("imagenes/fichero.gif");
ImageIcon imagen = new ImageIcon (url);