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

use*_*721 19 java gui environment-variables osx-mavericks macos

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

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

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

Lri*_*Lri 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打印用户 launchd 进程sudo launchctl export导出的变量并打印 root launchd 进程导出的变量。

此方法还可用于设置默认路径。例如,我已将此行添加到/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 身份运行的程序。)

  • +1 用于解释如何在不重新启动系统的情况下获取 `/etc/launchd.conf` 中的更改。应该使用 /etc/paths.d/ 中的 PATH 环境变量文件来配置。 (5认同)
  • 实际上,`/etc/launchd.conf` 在 10.10 之后不再起作用 (4认同)