Advanced   Java   Services JAVA-Praktikum Back Next Up Home
System (Lösungen)
// ------------------------------- 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.

Valid XHTML 1.0 Strict top Back Next Up Home