Archivos jar Archivos jar Los archivos jar permiten introducir todos los archivos necesarios para ejecutar una aplicación (clases, imágenes, sonidos, archivos de texto, etc.) en uno solo con la posibilidad de comprimirlos. Pero además ofrecen otras posibilidades, entre las que se encuentra la posibilidad de añadir información adicional: versión del programa, quién lo ha creado, entre otra y la que en nuestro caso nos interesa: indicar la clase principal (la que contiene el método main) para poder ejecutarla con el intérprete del JDK (el programa java). Esta información se guarda en un archivo dentro del jar, que se llama MANIFEST.MF cuya ruta dentro del archivo jar será siempre META-INF/MANIFEST.MF. Este archivo es creado por defecto siempre que se crea un archivo jar. Este archivo se puede personalizar. Para administrar un archivo jar se usa el programa jar del JDK. Crear un archivo jar A continuación se muestra un ejemplo de cómo crear un archivo jar con las opciones más usuales. jar cfv MiArchivo.jar Clase1.class Clase2.class Imagen.gif Sonido.au OtrosArchivos El ejemplo indica que se va a crear un jar de nombre MiArchivo.jar que contendrá los archivos Clase1.class, Clase2.class, Imagen.gif y Sonido.au y el directorio OtrosArchivos. Como se puede observar en un archivo jar podemos meter cualquier tipo de archivo, incluso directorios. Si existe alguna referencia a archivos dentro de otro directorio estas se mantendrán sin producirse errores ya que la jerarquía de directorios se mantiene dentro del archivo. En el ejemplo se han empleado las opciones c, f y v de la línea de comandos. Estas opciones y otras se explican a continuación: Uso: jar {ctxui}[vfm0Me] [archivo‐jar] [archivo‐manifiesto] [punto‐entrada] [‐C dir] archivos... ‐c crear archivo de almacenamiento. ‐t crear la tabla de contenido del archivo de almacenamiento. ‐x extraer el archivo mencionado (o todos) del archivo de almacenamiento. ‐u actualizar archivo de almacenamiento existente. ‐v generar salida detallada de los datos de salida estándar. ‐f especificar nombre del archivo de almacenamiento. ‐m incluir información de un archivo de manifiesto especificado. ‐e especificar punto de entrada de la aplicación para aplicación autónoma que se incluye dentro de un archivo jar ejecutable. ‐0 sólo almacenar; no utilizar compresión ZIP ‐M no crear un archivo de manifiesto para las entradas. ‐i generar información de índice para los archivos jar especificados. ‐C cambiar al directorio especificado e incluir el archivo siguiente. Si algún archivo coincide también con un directorio, ambos se procesarán. El archivo de manifiesto es un archivo de texto plano (sin formato) por lo que podrá ser creado con cualquier editor de textos. El archivo podrá tener cualquier nombre y/o extensión ya que lo que el programa jar hará será mezclar el contenido de este archivo con el que se crea por defecto. En nuestro caso el archivo de manifiesto tendrá una sola línea en la que indicaremos la clase principal (la que contiene el método main). Esto se hace de la siguiente forma: Se edita en el bloc de notas la línea, donde dice ClasePrincipal iría el nombre de nuestra clase Main-Class: ClasePrincipal Grabarlo MiManifiesto.mf HAY QUE TENER MUCHO CUIDADO AL EDITAR ESTE ARCHIVO, Main-Class: ClasePrincipal ES LA ÚNICA LÍNEA QUE DEBERÁ DE APARECER NO DEBE DE HABER ESPACIO AL INICIO DE LA LÍNEA, EL ÚNICO ESPACIO QUE DEBE DE APARECER ES EL QUE ESTÁ ENTRE LOS DOS PUNTOS Y EL NOMBRE DE LA CLASE QUE CONTIENE EL MÉTODO main(), AL FINALIZAR LA LÍNEA ES NECESARIO DAR ENTER, UNA VEZ HECHO ESTO SE GRABA EL ARCHIVO, PUEDE IR CON CUALQUIER EXTENSION, ES MÁS COMÚN PONERLE .MF PERO NO AFECTA SI ES OTRA LA EXTENSION, SOLO TENER CUIDADO DE AGREGARLA AL MOMENTO DE GENERAR EL ARCHIVO jar. De este modo se indica cual es la clase principal (sin .class). Ahora deberemos crear el archivo jar con esta información. A continuación se muestra un ejemplo: maria eugenia puga nathal Página 1 13/11/2015 Archivos jar jar cvmf MiManifiesto.mf MiArchivo.jar ClasePrincipal.class OtraClase.class Imagen.gif Se observa que tras las opciones, en las que está la opción m explicada anteriormente, se indica el nombre del archivo de manifiesto. Ahora solamente tendremos que indicar que los archivos .jar se abran con el programa Java y con la opción -jar en la línea de comandos. Esto ya lo hace el instalador del J2SE por lo que no será necesario hacerlo nosotros. Es importante verificar en el archivo jar generado, en caso de que sea ejecutable, que el archivo MANIFEST.FM, se haya actualizado con la información emitida desde nuestro archivo MiManifiesto.mf, es decir que contenga la línea: Main-Class: y nuestra clase que contiene el método main(), en caso de que no se encuentre, modificarlo manualmente, es necesaria para que el archivo jar generado sea de tipo ejecutable, y verificar que se actualice en el archivo jar. Fuente: http://www.gamarod.com.ar Información tomada de la página: http://www.trucoswindows.net/foro/topico-78356-archivos-jar.html Documento: Creando archivos *.jar 2008; Mamandi Condori Edgar Manuel Ver contenido jar tvf archivo.jar Comprimir jar cvf archivo.jar archivo_1 archivo_2 archivo_3 ... archivo_n Descomprimir jar xvf archivos.jar Incorporar un archivo jar a un Applet Suponer que tenemos un applet de nombre Arbolito.java, vamos a suponer que este applet utiliza imágenes, que se encuentran en una carpeta images y sonidos que se encuentran en una carpeta rounds, lo compilamos (javac Arbolito.java). Una vez que ya esté compilado (se genero el archivo Arbolito.class), diseñamos la página Web que contendrá a nuestro applet. Para crear un archivo .jar que guarde toda esta información, se hace lo siguiente: 1. Ubicarnos en el directorio (o carpeta) que contiene nuestra aplicación. 2. Una vez ubicados en dicho directorio, en la consola del MSD (o de cualquier otro S.O.) escribir: jar -cvf Arboilito.jar Arbolito.class audio images (jar –cvf nombreNuestroArchivo.jar NombreClaseApplet carpetaImagenes carpetaAudio) 3. Ya tenemos el archivo Arbolito.jar creado. El archivo Arbolito.java no está incluido porque no es necesario para la ejecución del programa, aunque se podría haber incluido si asi lo quisieran (para la entrega de los trabajos conmigo, si se debe incluir). Para cargar el applet desde una página html sólo debemos copiar este archivo a la misma carpeta donde esté la página. La página por su parte debe incluir un código similar al siguiente para "incrustar" el applet en ésta: <applet code="Arbolito.class" archive="Arbolito.jar" width="120" height="120"> </applet> Ejecutar: Aplicación de consola, si estamos en Windows sólo dar doble clic en ésta, si es un applet, abrir la página Web que lo contiene Consola: java –jar archive.jar (aplicación de consola) appletviewer pagina.html (si es un applet) maria eugenia puga nathal Página 2 13/11/2015