He visto algunas respuestas sobre cómo cargar un archivo en particular dentro de un contenedor a través de getResourceAsStream, y puedo gestionarlo. Sin embargo, estoy enfrentando algo muy específico y no pude encontrar una respuesta al respecto en el foro.Cargando con ResourceBundle desde el interior de un contenedor
Aquí es la configuración:
Tengo un archivo jar de tener un directorio conf que contiene 2 ficheros de propiedades messages_en_US.properties y messages_fr_FR.properties. La forma clásica para cargar dichos recursos es usar
ResourceBundle.getBundle("messages", java.util.Locale.getDefault());
Si los archivos estaban en el disco, en un directorio al que hace referencia la ruta de clase Programm, esto funciona bien. Pero no sé cómo puedo administrar el uso combinado de ResourceBundle.getBundle y el uso de los recursos de witin a jar. De hecho, como no puedo ver ningún puente a través de getResourceAsStream (o esto implicaría administrar la configuración regional por mi cuenta para especificar el nombre completo del archivo de recursos, que no es muy inteligente).
¿Alguien puede ayudar?
Gracias.
¿Dónde tienes ese archivo ¿en la jarra? si permanece en un JAR significa que lo tienes en el classpath y no deberías tener problemas para cargarlo normalmente con ResourceBundle.getBundle – rascio
Tengo el mismo problema, tengo un recurso de propiedad dentro de un archivo jar pero ese archivo jar es NO en los programas classpath.Leí el javadoc para PropertyResourceBundle y sé que podría hacerlo con inputstream, pero inputstream significa que leerá el archivo cada vez y perderé el almacenamiento en caché predeterminado de ResourceBundle. ¿Hay alguna manera de dirigir la clase ResourceBundle para obtener el paquete de un recurso que está fuera de su classpath? –
También se puede implementar ResourceBundle.Control para la personalización, pero parece una exageración, es mejor encontrar formas de colocar los archivos de propiedades en la ruta de clases. –