如何在OS X Mavericks中为GUI应用设置环境变量?


19

我一直在努力让应用程序在OS X Mavericks中运行。通过钻入.app包并直接运行shell脚本,我终于能够使其运行。似乎需要设置JAVA_HOME。所以我在外壳的.profile中设置了它,一切正常。

但是,如果我只想单击扩展坞中的图标,它将无法运行。我的猜测是,这是因为未全局设置JAVA_HOME。由于我不是直接从外壳运行该应用程序,因此OS X不知道JAVA_HOME是什么。它一直在寻找。

在OS X的早期版本中,似乎可以通过将GUI应用程序简单地添加到/etc/launchd.conf中来设置环境变量。该文件似乎在Mavericks中不存在。如何设置适用于Mavericks中GUI应用程序的全局环境变量?

Answers:


24

/etc/launchd.conf 默认情况下从未存在过,但在10.9中仍然有效。

  1. 例如运行sudo nano /etc/launchd.conf
  2. 添加一行setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home。(我不知道该JAVA_HOME设置什么。)
  3. 重新启动或运行launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.conf并重新启动进程。

launchctl export打印由用户启动的进程sudo launchctl export导出的变量,并打印由根启动的进程导出的变量。

此方法还可用于设置默认路径。例如,我已将此行添加到/etc/launchd.conf

setenv PATH /Users/lauri/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin

(我之所以使用/Users/lauri/bin而不是~/bin因为~/bin它将/var/root/bin用于作为root用户运行的程序。)


5
+1用于说明如何在/etc/launchd.conf不重新启动系统的情况下获得更改。为了配置PATH环境变量,/etc/paths.d/应使用in中的文件。
Timo Meinen 2014年

4
实际上,/etc/launchd.conf在10.10之后不再工作了
OleGG 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.