Foro sobre Java SE > Como extraer o copiar un directorio contenida en un jar
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.
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?
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.
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
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
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?