# Environment Variablen per java -D weitergeben



## kadei (18. Sep 2007)

Hallo,

Ich möchte den ORACLE_HOME parameter in mein Java Programm weitergeben.


Bisher sieht mein Aufruf folgender masen aus(Windows)

Aufruf:

    java -DORAHOME=%ORACLE_HOME% myclass


Im Java Programm:

    String ora = System.getProperty("ORAHOME")


Inhalt der ora:

    ora -> %ORACLE_HOME%



p.S. hab jede moeglichkeit mit " , 2x $, 1x % durchprobiert und bisher hat nichts funktioniert.


----------



## tuxedo (18. Sep 2007)

Verzwickte Sache. Hast du mal probiert die Umgebungsvariable in einer Batch-File als normale Variable zu laden und dann die normale Variable der VM zu übergeben ?

edit:

vergiss was ich geschrieben hab ... funktioniert auch nicht, eben getestet...

- Alex


----------



## tuxedo (18. Sep 2007)

Kommando zurück:

Meine Test-Batch-File:


```
SET test=Hallo Welt
java -Dpath="%test%" -cp ./bin Test
```

Meine Testklasse:


```
public class Test {
	
	public static void main(String[] args) {
		
		System.out.println(System.getProperty("test"));
		
	}

}
```

Ausgabe:



> Hallo Welt



Scheint also an der Batch-File zu liegen dass es jetzt geht...

- Alex


----------



## kadei (18. Sep 2007)

Ich brauche aber die Oracle_home variable und ich habe nicht die Moeglichkeit 
diese zuerst in eine andere variable zu kopieren.


" set oratemp=%ORACLE_HOME% "


Ich nutze naemlich generierte Exen für mein Programm, daher fällt die Batchmethode leider weg.


----------



## tuxedo (18. Sep 2007)

Wie startest du denn genau deine Java-Programme aus der EXE heraus?

Undprinzipiell wäre es ja "wurscht" ob du mit der EXE Java startest oder eine Batch-File die dann ihrerseits Java startet ... Das Ergebnis wäre das gleiche ;-) Und für den User sieht's auch gleich aus. 

- Alex


----------



## kadei (18. Sep 2007)

```
java -DJAVA_HOME=%JAVA_HOME% -DORACLE_HOME=%ORACLE_HOME% setup.installerMain
```


Classpath sind 

InstallerMain.jar
class12.zip


Wie er den Classpath zusammensetzt wird nicht angezeigt, aber er wird diese nur mit ";" abtrennen.[/code]


----------



## tuxedo (18. Sep 2007)

Probier mal ein einfaches "start" davor zu setzen. Die Umgebungsvariablen müssen noch mit " versehen werden. Also dann alles zusammen so:


```
start java -DJAVA_HOME="%JAVA_HOME%" -DORACLE_HOME="%ORACLE_HOME%" setup.installerMain
```

Habs eben bei mir exemplarisch getestet (direkt aus der EIngabeaufforderung heraus). Hat funktioniert...

- Alex


----------



## kadei (18. Sep 2007)

Ok ,danke


----------



## Murray (18. Sep 2007)

Warum greifst du nicht im Java-Programm direkt auf die Umgebungsvariable zu (ohne Umweg über die System-Properties)?

```
String ora = System.getenv("ORACLE_HOME");
```


----------



## tuxedo (18. Sep 2007)

Stimmt, jetzt wo du's erwähnst ;-) *alzheimer lässt grüßen*

- Alex


----------

