# Umgebungsvariablen auflisten und auslesen



## Thogo (8. Jun 2006)

Hallo,

ich spiele mit Ant herum und möchte dazu ein Testprogramm schreiben.

Das soll einfach nur die gesetzten Argumente und die gesetzten Umgebungsvariablen auflisten und ausgeben.

Die Argumente sind trivial:

```
for (int i=0; i<args.length; i++) {
	System.out.println("" + i + ": "+args[i]);
}
```

Aber wie läuft's mit den Umgebungsvariablen?
getenv ist erstes deprecated, zweitens wirft Exceptions und drittens gibt keine Liste zurück.
Mit den Properties komme ich nicht ganz klar. Ich bekomme zwar eine
riesige Liste, aber _meine_ Umgebungsvariablen werden mir nicht ausgegeben.


```
Properties p = new Properties(System.getProperties());
		Enumeration e = p.propertyNames();
		String property = null;
		String propertyValue = null;
		while (e.hasMoreElements()) {
			property = (String) e.nextElement();
			propertyValue = p.getProperty(property);
			System.out.println(property + " = " + propertyValue);
		}
```

Wie macht man's richtig?

Testumgebung 1:
Setzen der Umgebungsvariablen im Reiter Environments bei der Konfiguration einer Run Konfiguration unter Eclipse

Testumgebung 2:
Ein Target innerhalb eines Ant-Skripts

```
<target name="teste Dummy" depends="build">
		<java fork="yes" classname="Dummy" failonerror="true"  newenvironment="true">
			<env key="ENVVAR" value="123" />
			<arg value="argument" />
			<classpath refid="project.classpath" />
		</java>
	</target>
```

Hat jemand einen Tipp für mich?

Gruß
Thogo
[/code]


----------



## thE_29 (9. Jun 2006)

In Java 1.5 geht getEnv glaube ich wieder!

In 1.4 müsstest du das mit runtim.exec mache machen und OS spezfisch, entweder set (win) oder env (lin) sagen und dann die variablen einlesen!


----------



## Thogo (9. Jun 2006)

thE_29 hat gesagt.:
			
		

> In Java 1.5 geht getEnv glaube ich wieder!



Hm, und wie bekomme ich heraus welche Umgebungsvariablen es überhaupt gibt?
Und leider muß ich den Mechanismus für 1.2 bis 1.5 bereitstellen :? 



			
				thE_29 hat gesagt.:
			
		

> In 1.4 müsstest du das mit runtim.exec mache machen und OS spezfisch, entweder set (win) oder env (lin) sagen und dann die variablen einlesen!



Bekomme ich dann wirklich die für den jeweiligen Programmstart gesetzten Variablen oder nur die die standardmäßig im Betriebssystem für eine Shell gesetzt werden.
Sprich: wird die Umgebung für runtim.exec vererbt oder die Standardkonfiguration genommen?

Gruß
Thogo


----------



## Thogo (9. Jun 2006)

Es wird vererbt. Danke für den Tipp!

Gruß
Thogo


----------

