Ich habe Mortimers Antwort hier gelesen https://stackoverflow.com/questions/25385934/setting-environment-variables-via-launchd-conf-no-longer-works-in-os-x-yosemite und diese Datei in /Users/ hinzugefügt. MyName/Library/LaunchAgents mit dem Namen „environment.plist“:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>my.startup</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>
launchctl setenv GRADLE_HOME /Applications/gradle-2.0
launchctl setenv JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Habe meinen Laptop neu gestartet, ein Terminal geöffnet und echo $GRADLE_HOME ausgeführt, aber es ist immer noch leer. Wie lege ich eine Umgebungsvariable fest, die während Terminalsitzungen in Mac OS 10.10 persistent ist?
Computer herunterfahren und neu starten. Öffnen Sie das Terminal und geben Sie echo $ENV_VAR ein und Sie sollten den von Ihnen definierten Wert sehen.
Karl Stewart
launchd
und ich habe das Yosemite-'Upgrade' vermieden, aber die Nutzlast vonProgramArguments
sieht für mich komisch aus: Wenn die mehrzeilige Zeichenfolge als Argument an "sh" übergeben wird, woher soll sh das wissen es sollen zweilaunchtctl
s ausgeführt werden?Markus H
Karl Stewart
launchctl setenv GRADLE_HOME /Applications/gradle-2.0
(also nur ein Befehl an sh übergeben wird)?Karl Stewart