Tengo un proyecto en el que quiero acceder a un recurso en un JAR de otro proyecto. No está en mi classpath, entonces ClassLoader no es una opción. Intenté:Abrir un recurso JAR como un FileStream
new FileInputStream("C:\\mydir\\my.jar!\\myresource.txt");
y recibí una excepción FileNotFoundException.
JarInputStream podría ser una posibilidad, pero quiero que la flexibilidad del nombre de archivo de entrada sea un recurso jar o simplemente un archivo en el sistema (el usuario decide). ¿Hay alguna clase que pueda hacer esto o tengo que construir uno yo mismo?
No estoy seguro de si ayuda, pero los archivos jar son básicamente archivos zip, por lo que si puede leer algo de un archivo comprimido, puede leerlo de la misma manera, quizás eso ayude a ampliar su búsqueda. –
@Mark - Los archivos JAR son esencialmente archivos ZIP, pero solo por el momento. Corre el rumor de que el formato JAR está cambiando en Java 7. Con suerte, el uso de las clases de abstracción adecuadas protegerá el futuro de cualquier código de manipulación JAR (consulte el paquete 'java.util.jar'). – McDowell