Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Como extraer o copiar un directorio contenida en un jar

Hola como dice el titulo tengo un jar, que dentro de ella esta contenida algunas carpetas o paquetes, quiero que se copien al escritorio... lo que eh logrado es de como copiar archivos contenida en el jar... pero no es optimo hacerlo uno por uno... hay alguna forma de como hacerlo??? alguna idea?

agosto 24, 2013 | Unregistered CommenterSKZ

Puedes empaquetarlos en un zip dentro del jar, copiar el zip a la ubicación que quieras al disco del sistema, y descomprimirlos a continuación.
Con esta librería, http://www.lingala.net/zip4j/ puedes manejar el zip con facilidad.

agosto 24, 2013 | Registered Commenterchoces

Muy Buena Libreria... pero es posible que con ella pueda descomprimir el archivo rar o zip que esta contenida en jar.... sin que yo primera la copie y luego descomprima?

agosto 24, 2013 | Unregistered CommenterSKZ

No, dentro del jar no es posible.
De todos modos, no existe ningún método en el JDK que permita hacer lo que preguntabas: copiar en bloque del jar a una ubicación externa.
Con esa librería, y empaquetando el zip en el jar, puedes hacer una única copia, para descomprimirlo donde lo hayas guardado en el disco de sistema.

agosto 24, 2013 | Registered Commenterchoces

Encontré un código en http://www.javaworld.com/javatips/jw-javatip120.html?page=3

link del codigo: http://www.javaworld.com/javaworld/javatips/javatip120/zipper.jar

con este código extrae todos los archivos contenida en el jar excepto el archivo tipo class que tiene el codigo de extraer... pero para que funcione la class con el codigo deve estar a fuera de paquetes...

Ahora como puedo personalizarlo para que solo extrae algunos paquetes y para q la clase con el codigo no este afuera , sino que este contenido dentro de un un paquete

agosto 24, 2013 | Unregistered CommenterSKZ

Para que extraiga solo ciertos paquetes solo tienes que modificar el java del fichero ZipSelfExtractor. Es bastante sencillo, solo tienes que discriminar aquello que quieras extraer cuando comienza a extraer los ficheros:
Enumeration entries = zf.entries();

for (int i=0; i<size; i++)
{

Respecto a lo segundo que planteas, si has leido atentamente el articulo que tu mismo has posteado sabras que NO se puede hacer. El fichero que se ejecuta debe estar SI o SI en la raiz del jar para que funcione.

Un saludo

agosto 24, 2013 | Unregistered CommenterUnoPorAhi