aplicación My Java necesita ser capaz de encontrar un directorio myconfig/
que será incluido dentro de la misma JAR:¿Cómo leer un directorio desde el classpath en tiempo de ejecución?
myjar.jar/
com/
me/
myproject/
ConfigLoader.java --> looks for myconfig/ directory and its contents
myconfig/
conf-1.xml
conf.properties
... etc.
¿Cómo que seguir para leer este directorio myconfig/
fuera de la ruta de clases de tiempo de ejecución? He hecho algunas investigaciones y parece que el método normal de lectura de un archivode la ruta de clases no funciona para directorios:
InputStream stream = ConfigLoader.class.getResourceAsStream("myconfig");
Así que ¿alguien sabe cómo leer un directorio completo de la runtime classpath (a diferencia de un solo archivo)? ¡Gracias por adelantado!
Tenga en cuenta: No es posible cargar los archivos individualmente, myconfig
es un directorio con miles de archivos de propiedades dentro de él.
¿Qué estás tratando de hacer? –
Estoy tratando de simplificar el problema para poder explicarlo. Hay una biblioteca llamada 'langdetect' alojada en google [aquí] (http://code.google.com/p/language-detection/). La biblioteca se envía con un directorio 'profiles' que utiliza para cargar cada archivo de propiedades de un solo idioma en el classpath de tiempo de ejecución. En tiempo de ejecución necesita llamar a un método 'DetectFactory.loadProfile (String)' para inicializar el directorio 'profiles /'. Entonces este directorio debe estar en el classpath. Puedo hacer que esto funcione cuando le paso una ruta de archivo abs, pero al final necesito empaquetar esto dentro del mismo JAR. – IAmYourFaja
Así que, en última instancia, solo necesito pasar 'DetectFactory.loadProfiles' a String que lo apunta al directorio' profiles' dentro del mismo JAR. Así que mientras mi ejemplo muestra el directorio 'myconfig', realmente es' profiles'. Donde muestra 'ConfigLoader', es realmente' DetectFactory'. – IAmYourFaja