¿Puedo enumerar los recursos en un paquete dado?
Pregunta
Supongamos que mis clases se cargan desde un archivo comprimido .war o se cargan en otro lugar, ¿Cómo puedo descubrir todos los recursos en un paquete dado? Enumerar los archivos realmente no funcionará, ya que este es un archivo de guerra. ¿Lo más probable es que esto implique el uso del cargador de clases actual?
¿Hay una biblioteca por ahí que haga algo así? Google reveló solo algunos hacks con archivos de listado.
Solución
No, no puede enumerar recursos en un paquete porque la JVM simplemente no sabe qué recursos hay en qué paquete. Ver esto pregunta .
Otros consejos
Sí Puede usar ClassLoader.getResources (" ")
;
O podría usar la API de hurón:
https://www.ohloh.net/p/pureperfect-ferret
Esta API le permite escanear la ruta de clase, así como archivos y directorios arbitrarios utilizando el patrón Visitante.
Spring Framework ofrece una clase llamada PathMatchingResourcePatternResolver
. Con esta clase, puede proporcionar rutas de estilo Ant con comodines y encontrará los recursos relevantes para usted (buscando entre las carpetas y los frascos en el classpath).
Hago esto:
- antes del embalaje, ls myResources / *. ext > myResources / list.txt
- solo lea el archivo primero