Tengo una sencilla aplicación Java que carga un archivo de propiedades del paquete actual.recurso de carga desde cualquier punto de la ruta de clase
this.getClass().getResourceAsStream("props.properties");
Esto funciona bien cuando el archivo de propiedad que quiero está en el paquete actual. Sin embargo, quiero empaquetar esta aplicación como un JAR y definir y anular con un nuevo archivo de propiedades donde lo uso. ¿Hay alguna forma de cargar el primer recurso llamado "props.properties" que está en el classpath?
Quiero que sea tan fácil de reemplazar el archivo de propiedades a través de línea de comandos:
java.exe -classpath props.properties;myJar.jar com.test.MyApp
yo no quiero tener que descomprimir el archivo JAR y modificar el archivo de propiedades para cambiar algo. Siento que estoy perdiendo algo obvio ...
Sonidos sobre derecho: desea preguntar a un ClassLoader que es el "jefe" del que cargó su clase, por lo que puede tener acceso a más paquetes. Otra posibilidad es probar 'ClassLoader.getSystemClassLoader()' - como su nombre lo indica, es el "jefe" de los demás. –
no hay un método estático 'getResourceAsStream()' en la clase 'ClassLoader'. –
y el cargador de clases del sistema probablemente cargará recursos desde fuera del classpath de su aplicación, es decir, buscando en los directorios bootstrap en la ruta de instalación de JRE –