2010-12-02 8 views
0

Sind die Umgebungsvariablen des übergeordneten Prozesses (z. B. shell) in der Umgebung verfügbar, in der ein unterlaufender Prozess ausgeführt wird, der mit Runtime.exec (command) aufgerufen wird? Ich habe mir die API-Dokumentation angesehen, aber sie ist dort nicht angegeben.Von Runtime.exec (String) übergebene Umgebungsvariablen

Mein Anwendungsfall ist diese

mainScript.shjava MainClass

MainClassRuntime.exec("hi.sh"), ist eine Variable MY_ENV Jetzt

aufruft aufruft, die festgelegt ist und in mainScript.sh zur Verfügung hi.sh exportiert?

PS: Ich kenne die zweite API, die explizite String[] envp nimmt.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4064912 hat einige vage Informationen.

+0

läuft Was passiert, wenn Sie es versuchen ? –

+1

Ich habe es versucht und die Antwort war "Ja, es hat bestanden". Aber ich möchte eine konkrete Antwort, etwas, das nicht auf bloßen Experimenten beruht. – Jagat

+2

Die Laufzeit müsste einige Anstrengungen unternehmen, um Umgebungsvariablen * nicht * zu übermitteln, und dies würde möglicherweise gestartete Prozesse zum Scheitern bringen (aufgrund fehlender 'LD_LIBRARY_PATH' oder nur' PATH'), also denke ich, dass es sicher ist verlassen sich auf die Umwelt arbeiten. – Pointy

Antwort

3

Ja, warum nicht?

Von Runtime documentation:

Jede Java-Anwendung hat eine einzelne Instanz der Klasse Runtime, die die Anwendung mit der Umgebung zu verbinden erlaubt, in dem die Anwendung

Verwandte Themen