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.-