# Umgebungsvariablen setzten / auslesen



## christophersn (5. Mrz 2005)

Hallo,
ich möchte Umgebungsvariablen vorest auf WinXP, später auf Linux auslesen. 
Wenn ich z.B. wie unter http://www.highscore.de/java/aufbau/system.html (Strg+F umgebungsvariablen)
beschrieben in den Systemeinstellungen eine Umgebungsvariable PARAM mit dem Wert 1 erzeuge, um diese später mittels 

```
String param = System.getProperty("param","not found");
System.out.println(param);
```
auszulesen, findet der die nicht!?
Sie im selben Programm zu setzen und auszulesen funktioniert, also der Beweis, dass selbst erzeugte Umgebungsvariablen temporär sind!
Nur warum kann ich z.B. mittels 

```
String param = System.getProperty("os.arch","not found");
System.out.println(param);
```
auf eine andere wiederum doch zugreifen?

Wie stelle ich es nun an, dass ich eine Umgebungsvariable z.B. während dem Ausführen des Programms über das System ändere, die dann auch im Programm erkannt und verarbeitet wird?

Danke lg

_Edit Illuvatar: Url- und Codetags bereinigt_


----------



## foobar (5. Mrz 2005)

Umgebungsvariablen habe nichts mit Systemproperties zu tun. Systemproperties sind javaspezifisch und Umgebungsvaribalen werden von deinem OS gesetzt.


----------



## christophersn (5. Mrz 2005)

wie kann ich dann auf Umgebungsvariablen zugreifen?
Bzw. gibt es eine andere Möglichkeit als Dateien um auf CGI-Skript Befehle zu reagieren? d.h. wir wollten ursprünglich mittels Umgebungsvariablen dem Java Programm mitteilen, dass Dateiänderungen vorgenommen wurden (somit ersparen wir uns das ständig öffnen und nachsehen in der Datei)
thx


----------



## christophersn (7. Mrz 2005)

keiner eine Idee?


----------



## Sky (7. Mrz 2005)

christophersn hat gesagt.:
			
		

> d.h. wir wollten ursprünglich mittels Umgebungsvariablen dem Java Programm mitteilen, dass Dateiänderungen vorgenommen wurden




Vielleicht hilft das ja bei eurem Problem:
http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#lastModified()

Einfach mal schauen, wann die Datei zuletzt verändert wurde...


----------



## KSG9|sebastian (7. Mrz 2005)

Runtime.getRuntime().exec("cmd /c SET var="+wert);


----------



## thE_29 (7. Mrz 2005)

Nur, das das nur für die eine shell bleibt in der das gemacht wird 

cmd /c = die shell macht sich nachher gleich wieder zu

cmd /k = shell bleibt offen, aber ob das windows das übernimmt, ist ne andere Frage und die standardshell glaube ich beindruckt das auch nicht...


----------



## christophersn (7. Mrz 2005)

@the 29: was meinst Du mit den cmd Befehlen? Konkretisiere bitte Deine Aussagen.
thx


----------



## thE_29 (7. Mrz 2005)

Geh mal in die Hilfe von DOS und gib mal cmd /? ein und lies dir mal durch was bei /c und /k steht und dann teste mal


----------



## dotlens (7. Mrz 2005)

start, ausführen, cmd


----------

