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.ClasePrincipalClass-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.ClasePrincipalClass-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);
Top Related