martes, 28 de diciembre de 2010

Java System.getProperty(String key) System.SetProperty(String key, String value)

Muchas veces resulta útil poder enviar información desde afuera de la aplicación, como por ejemplo en los scripts que se hacen para levantar las aplicaciones, Java nos permite enviar valores que la aplicación puede recuperar y utilizar según sea el caso, estas son propiedades de la forma clave=valor del tipo String.
 se pueden definir en dos lugares diferentes, el primero es donde se llama a Java cuando se levanta la aplicación agregando -D
Por Ej.:
java -Dlogfile="\home\tomcat\log" nombreDelaClaseMain en cuyo caso se le envía a la VM como argumento una propiedad del tipo String llamada "logfile" y cuyo valor es otro String "\home\tomcat\log".

El otro lugar en que se puede definir estas propiedades es dentro del programa, invocando al método estático setProperty de la clase System,
System.setProperty("propiedad","valorDeLaPropiedad");

 Acá hay un ejemplo de cómo se definen y se  recuperan esas propiedades:

public class SystemPropertiesTest {

    public static void main(String[] args) {
      
       //getting the value setted in the jvm launch
        String value = System.getProperty("key");
        System.out.println(value);

        System.out.println("Setting system property in the class : key + value");
        System.setProperty("key", "valueTwo");
        value = System.getProperty("key");
        System.out.println(value);
    }
}

La llamada desde línea de comando sería la siguiente



En este link http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/java.html  hay información sobre las opciones del aplication launcher de java (dentro de ellas esta las que vimos en este post)

Saludos y espero que les haya sido de utilidad
Nacho.-

2 comentarios:

Ignacio Guardines dijo...
Este comentario ha sido eliminado por el autor.
Ignacio Guardines dijo...
Este comentario ha sido eliminado por el autor.