// ------------------------------- Aufgabe 1 ------------------------------- \\
String[] keys = { "awt.toolkit", "file.encoding", "file.separator",
"java.home", "java.version", "user.country" } ;
for(int i=0; i<keys.length; i++)
System.out.println(keys[i] + "\t: " + System.getProperty(keys[i]) );
// ------------------------------- Aufgabe 2 ------------------------------- \\
System.setProperty("class", SystemPropertiesDemo3.class.getName() ) ;
System.out.println("property set");
System.out.println("class\t: " + System.getProperty("class") );
Properties props = System.getProperties() ;
String value = (String)props.remove("class");
System.out.println(value + " removed");
System.out.println("class\t: " + System.getProperty("class") ); // liefert null
// ------------------------------- Aufgabe 3 ------------------------------- \\
import java.util.*;
public class SystemPropertiesDemo
{
public static void main(String args[])
{
Properties props = System.getProperties() ;
String value = (String)props.remove("awt.toolkit");
System.out.println(value + " removed");
System.out.println("awt.toolkit\t: " + System.getProperty("awt.toolkit") );
// liefert jetzt null
System.out.println("Ende SystemPropertiesDemo");
}
}
Folgerung aus dem zweimaligen Starten der Applikation:
Greift eine Applikation auf die Klasse System zu, so werden vorher eine Reihe von nativen Methoden
aufgerufen. Unter anderem wird die von der JVM angelegte Propertiestabelle ausgelesen und in einem
eigenen Propertiesobjekt gespeichert. Jede Applikation erhält zur Laufzeit eine eigene Propertytabelle.
Änderungen einer Applikation in der Tabelle wirken sich nicht auf andere Applikationen aus.
Zudem sind die Änderungen transient, sie gehen also mit dem Ende der Applikation verloren.