Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: cyberserver en 28 Diciembre 2009, 04:09 AM

Título: [SOLUCIONADO]Extraer archivos dentro de un .jar
Publicado por: cyberserver en 28 Diciembre 2009, 04:09 AM
Hola amigos!!!!! quiero saber si alguien conoce la forma de extrarer los archivos dentro de un .jar!!! aaaa pero dentro de codigo java.....!!!

Creo k es con java.util.jar pero ya me canse de buscar como hacerle y no lo puedo encontrar!!! facilitenme la tarea y pasenme el instructivo!!1

De antemano gracias...

Posdata: quiero extraerlos todos a la ves
Título: Re: Extraer archivos dentro de un .jar
Publicado por: Shell Root en 28 Diciembre 2009, 04:13 AM
CitarLo principal es como conseguir la URL de nuestro JAR y jugar con la clase ZipFile para extraer los archivos del mismo.

myClassName = this.getClass().getName() + ".class";
URL urlJar = this.getClass().getClassLoader().getSystemResource(myClassName);


Les dejo un articulo de javaworld (http://go2.wordpress.com/?id=725X1342&site=fetishcode.wordpress.com&url=http%3A%2F%2Fwww.javaworld.com%2Fjavaworld%2Fjavatips%2Fjw-javatip120.html) donde se trata este tema con mas profundidad.
Fuente: http://fetishcode.wordpress.com/2007/10/20/extraccion-de-ficheros-desde-jar/
Título: Re: Extraer archivos dentro de un .jar
Publicado por: cyberserver en 28 Diciembre 2009, 04:16 AM
Casualmente ya ley ese articulo pero no veo la forma de extrarer los archivos!!! aii solo guarda la URL del jar!!!

Tambien segui el vinculo y no encontre la forma. gracias
Título: Re: Extraer archivos dentro de un .jar
Publicado por: Leyer en 28 Diciembre 2009, 05:07 AM
 :-X

Título: Re: Extraer archivos dentro de un .jar
Publicado por: Leyer en 28 Diciembre 2009, 06:13 AM
despues de varios intentos creo Que te lo tengo  :)

http://jleyer.wordpress.com/2010/07/18/extraer-archivos-de-un-jar-desde-java/

Código (java) [Seleccionar]
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
     /**
      * @author leyer
      */
public class JarExtract {
public static void extractJar(String jarFile, java.io.File directory)throws IOException{
java.util.jar.JarInputStream jarInput = new java.util.jar.JarInputStream(new FileInputStream(jarFile));
java.util.jar.JarEntry jarEntry=null;
    while((jarEntry=jarInput.getNextJarEntry())!=null){
    java.io.File file=new java.io.File(directory,jarEntry.getName());
        if (jarEntry.isDirectory()){
        if (!file.exists())
                file.mkdirs();
        }else{ java.io.File dir = new java.io.File(file.getParent());
            if (!dir.exists())dir.mkdirs();
            byte[] bytes = new byte[1024];
            java.io.InputStream inputStream   = new BufferedInputStream(jarInput);
            FileOutputStream fileOutputStream = new FileOutputStream(file);
            int read = -1;
            while ((read = inputStream.read(bytes)) != -1) {
           fileOutputStream.write(bytes, 0, read);
       }
            fileOutputStream.close();            
        }
    }}
public static void main(String[] args) throws IOException {
extractJar("Archivo.jar",new java.io.File("/home/leyer/"));
}


Saludos.
Título: Re: Extraer archivos dentro de un .jar
Publicado por: cyberserver en 30 Diciembre 2009, 07:15 AM
EAEA muy chido tu codigo asi como bien estructurado!!!

Miren encontre la forma de sacar a un archivo especifico del jar. claso siempre y cuando la clases este dentro del paquete!!!


public void sacarArchivoJar(String Archivo,String RutaDescarga){

try {
            InputStream in = getClass().getResourceAsStream(Archivo);
            OutputStream out = new FileOutputStream(RutaDescarga);

            byte[] buf = new byte[1024];
            int len;
            while ((len = in.read(buf)) > 0) {
                out.write(buf, 0, len);
            }
            in.close();
            out.close();
            System.out.print("Copiado con exito");
        } catch (Exception e) {
            System.out.println(e);
        }

}
}
Título: Re: Extraer archivos dentro de un .jar
Publicado por: Debci en 31 Diciembre 2009, 14:13 PM
Cita de: cyberserver en 30 Diciembre 2009, 07:15 AM

public void sacarArchivoJar(String Archivo,String RutaDescarga){

try {
            InputStream in = getClass().getResourceAsStream(Archivo);
            OutputStream out = new FileOutputStream(RutaDescarga);

            byte[] buf = new byte[1024];
            int len;
            while ((len = in.read(buf)) > 0) {
                out.write(buf, 0, len);
            }
            in.close();
            out.close();
            System.out.print("Copiado con exito");
        } catch (Exception e) {
            System.out.println(e);
        }

}
}


Bro siempre igual, te lo digo siempre, ponle las tags de codigo como Linux manda:
code=java