style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Crear una system property para un jar

Tengo un jar que una de sus clases lee un archivo de configuración (config.properties) para obtener Properties que ocupa, como rutas, url, etc.
Pero la ruta de este archivo debe ser dinámica, por lo que tal vez pueda leerse de una variable de entorno algo así, pero me pidieron de preferencia se leyera de una system.property.
Sé que puedo correr la clase en línea de comandos con un java -Dmyproperty.fileName=C:\resourcesPortal\config.properties ReaderProperties, y así lee la ruta, pero como es un jar que se va a quedar desplegado en JBoss-4.2.2-GA tiene que leer la ruta automáticamente, pero no sé como dejarle la ruta en una variable configurable externa al jar.

Esta es la clase que intenta leer la ruta del archivo

public class ReadProperties
{
//The application properties definition. For further detail, see each
//attribute's getter.
private static StringBuffer sb;

public static void main(String[] args)
{
//The system property with the complete path where the application properties file is located
String propPath="";
//The current loading property, for debug purposes
String currentProperty="";
try
{
System.out.println("Retrieving Host2Host properties file");
//Retrieve and set the application properties' file path
currentProperty="pymecommunication.properties.path";
propPath = System.getProperty(currentProperty);
System.out.println(propPath);

}
catch(Exception e)
{
//Instance the StringBuffer object
sb=new StringBuffer();
//Build the message to record in the log file
sb.append("An unexpected error occurred while retrieving the application properties.\n");
sb.append("Last property read :");
sb.append(currentProperty);
System.out.println(sb);
sb=null;
}
}

}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de amohr

Espero aclararte el tema.

Tu problema es muy recurrente en todos los sistemas JAVA que se distribuyen como aplicaciones desktop o applets. Sea este JBoss o cualqueir otra tecnología, metodología o ambiente de desarrollo. El consejo que te doy es fácil y muy sencillo. Cualquier propiedad, datos externos al programa que desees tomar desde un jar, es decir desde una aplicación java, puedes utilizar un web service o un servlets para solciitar la parametrización de acuerdo al perfil del susuario o de la session que se haya conectado. En el caso que quieras parametrizar desde el momento que llama el jar, te recomiendo usar el Java Werb Star y programa run archivo jnpl y alli enviar los parametros necesarios al main del jar de java y alli podras recibir todos los parametros que quieras. Consejo. Las propiedades locales ya no se aconseja a usar.

Imagen de paranoid_android

Idea, agregar ruta externa al classpath

idea 1: Haz intentado agregar la ruta externa al classpath y dejar en esa ruta el archivo config.properties
idea 2: Leerlo desde FileInputStream

Solucionado

Gracias a ambos, por sus comentarios.
Me di cuenta que el jar estaba relacionado con una app de Spring y mejor le inyecté el nombre de archivo desde ahí a la clase por la system property del JBoss.

Agrega un ................

Agrega un JNDI
Y pasa los parametros pormedio
del servlet y dentro del web.xml los leea asi podran cambiar las rutas com kieran y sin mover el codigo

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">