Crear un archivo JAR con java.util.jar

1
23003

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:

  
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.

Autentia.

1 COMENTARIO

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad