Win32 System Umgebungsvariablen abfragen

Hallo.
Wer kann mir verraten, wie ich Umgebungsvariablen aus Win32-System auslesen kann.

Die Properties aus dem System-Objekt gehen nicht:

import java.util.*;

public class helloWorld {

public static void main(String[] args) {
Properties prop = System.getProperties();
prop.list(System.out);
}
}

liefert zwar viele, aber nicht alle Umgebungsvariablen des Systems. Der konkrete Zugriff:

System.out.println(System.getProperty(„CATALINA_HOME“));

liefert null. Obwohl diese Umgebungsvariable bei mir gesetzt ist.

System.out.println(System.getenv(„CATALINA_HOME“));

Die ältere Funktion getenv soll das zwar gekonnt haben liefert beim jdk 1.3.1 nur noch:

java.lang.Error: getenv no longer supported, use properties and -D
instead: CATALINA_HOME
at java.lang.System.getenv(System.java:677)
at helloWorld.main(helloWorld.java:20)
Exception in thread „main“

Danke.

java.lang.Error: getenv no longer supported, use properties
and -D instead:

Er meint dass du beim Aufruf der VM eine Property mit dem Wert der Variablen belegst, z. B.:

java -DCATALINA_HOME=$CATALINA_HOME mypackage.myclass

bzw. unter Windows:

java -DCATALINA_HOME=%CATALINA_HOME% mypackage.myclass

Das dann gesetzte Property CATALINA_HOME kannst du dann über System.getProperty() abfragen.

Grüße, Robert