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.sh
java MainClass
MainClass
Runtime.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.
läuft Was passiert, wenn Sie es versuchen ? –
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
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