Necesito copiar una carpeta, empaquetada en un Jar en tiempo de ejecución. Quiero hacerlo llamando a una función en una clase que también está contenida en la misma carpeta.Cómo extraer una carpeta de JAR
He intentado usar getSystemResource
:
URL sourceDirUrl = ClassLoader.getSystemResource("sourceDirName");
File sourceDir = new File(sourceDirUrl.toURI());
pero no funciona. Probablemente tenga que usar la función getResourceAsStream
recursivamente. ¿Hay una forma más elegante/directa de hacer esto?
en caso de tener que hacerlo de forma recursiva: 1. no quiero especificar los archivos codificados de forma rígida, quiero hacerlo de forma dinámica 2. No quiero crear un archivo aparte. Quiero que este recurso sea en el mismo tarro como las clases de tratar con ella
Gracias
que terminé haciendo lo Koziołek sugiere a continuación. Aunque esperaba una solución más elegante, parece que es lo mejor posible.
¿Estás dando 'sourceDirName' como ruta completa? – Nishant
sí, por favor dé un ejemplo para el 'sourceDirName' que usó. – asgs
@Nishant - no, una ruta relativa, la primera línea trabaja, la dirección URL es correcta, es imposible sin embargo para crear un objeto File basado en esta URL, ya que la carpeta se encuentra dentro del archivo –