Foro de elhacker.net

Programación => 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
Citar
Lo principal es como conseguir la URL de nuestro JAR y jugar con la clase ZipFile para extraer los archivos del mismo.

Código:
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
  1. import java.io.BufferedInputStream;
  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5.      /**
  6.        * @author leyer
  7.        */
  8. public class JarExtract {
  9. public static void extractJar(String jarFile, java.io.File directory)throws IOException{
  10. java.util.jar.JarInputStream jarInput = new java.util.jar.JarInputStream(new FileInputStream(jarFile));
  11. java.util.jar.JarEntry jarEntry=null;
  12.     while((jarEntry=jarInput.getNextJarEntry())!=null){
  13.     java.io.File file=new java.io.File(directory,jarEntry.getName());
  14.         if (jarEntry.isDirectory()){
  15.         if (!file.exists())
  16.                 file.mkdirs();
  17.         }else{ java.io.File dir = new java.io.File(file.getParent());
  18.             if (!dir.exists())dir.mkdirs();
  19.             byte[] bytes = new byte[1024];
  20.             java.io.InputStream inputStream   = new BufferedInputStream(jarInput);
  21.             FileOutputStream fileOutputStream = new FileOutputStream(file);
  22.             int read = -1;
  23.             while ((read = inputStream.read(bytes)) != -1) {
  24.            fileOutputStream.write(bytes, 0, read);
  25.        }
  26.             fileOutputStream.close();            
  27.         }
  28.     }}
  29. public static void main(String[] args) throws IOException {
  30. extractJar("Archivo.jar",new java.io.File("/home/leyer/"));
  31. }

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!!!

Código:
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
Código:
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