Crear un archivo JAR con java.util.jar
Hoy os queremos mostrar como podemos crear un archivo jar utilizando el paquete java.util.jar de una forma muy sencilla.
En primer lugar nos vamos a crear dos archivos en C:/temp
. Yo me he creado uno llamado JarAutentia.txt y otro llamado JarAutentia2.txt
Ahora vamos a crear un archivo jar que contenga estos dos ficheros de texto. Esto lo hacemos de la siguiente manera:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
package es.autentia.tutoriales; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.jar.JarEntry; import java.util.jar.JarOutputStream; import java.util.zip.Deflater; /** * Ejemplo de java.util.jar * @author Autentia */ public class CreaJar { /** * @param args the command line arguments */ public static void main(String[] args) { String nombreJar = "JarAutentia.jar"; //Comprobamos si existe el directorio de salida, si no lo creamos File dir = new File("C:/temp"); if ( !dir.exists() ){ dir.mkdirs(); } //Creamos el fichero jar de salida para los estaticos File jarFile = new File(dir, nombreJar); byte[] buffer = new byte[1024]; try { JarOutputStream outJar = new JarOutputStream(new FileOutputStream(jarFile)); outJar.setLevel(Deflater.DEFAULT_COMPRESSION); //Escribiendo el primer fichero JarEntry jarEntry = new JarEntry("JarAutentia.txt"); outJar.putNextEntry(jarEntry); // Leyendo los datos del fichero y escribiendolos en el Jar InputStream input = new FileInputStream(new File(dir,"JarAutentia.txt")); int count; while( ( count = input.read(buffer, 0, 1024 ) ) != -1 ) { outJar.write(buffer, 0, count); } outJar.closeEntry(); //Escribiendo el segundo fichero jarEntry = new JarEntry("JarAutentia2.txt"); outJar.putNextEntry(jarEntry); // Leyendo los datos del fichero y escribiendolos en el Jar input = new FileInputStream(new File(dir,"JarAutentia2.txt")); while( ( count = input.read(buffer, 0, 1024 ) ) != -1 ){ outJar.write(buffer, 0, count); } outJar.closeEntry(); outJar.close(); } catch ( IOException e ) { System.out.println( "Error escribiendo el jar " + e); } } } |
Cada vez que insertemos un fichero, debemos crear una nueva entrada (putNextEntry) y después cerrarla (closeEntry) para que nuestro archivo jar se cree correctamente.
También podemos definir el nivel de compresión que queremos para nuestro fichero. En nuestro ejemplo hemos usado el nivel por defecto, pero se puede utilizar un nivel mayor o menor de compresión.
Un saludo.
Buen tuto, exactamente lo que buscaba. Gracias