更新:下面的链接没有完整的答案。必须在两个地方设置路径或变量(一个用于GUI,一个用于shell)是很蹩脚的。

不重复:设置环境变量在OS X?


来自Windows的背景,设置和修改环境变量非常容易(只要去系统属性>高级>环境变量),在Mac OS 10.5上似乎没有那么直接。大多数引用都说我应该更新/etc/profile或~/.profile。这些变量是否等同于系统变量和用户变量?例如,我应该在哪里设置JAVA_HOME变量?


编辑:

我希望能够从终端以及像Eclipse这样的应用程序访问变量。另外,我希望我不需要重新启动/注销才能使其生效。


当前回答

只需要打开~/。配置文件,通过nano在终端,并键入:

export PATH=whatever/you/want:$PATH

保存该文件(cmd+X和Y)。 之后,请注销/登录再次或只是在终端打开一个新选项卡,并尝试使用您的新变量。

请不要忘记在/you/想要的东西后面加上“:$PATH”,否则你会删除PATH变量中之前的所有路径。

其他回答

我写了一个工具来方便地管理macOS应用程序的环境变量。

https://github.com/yuezk/macenv

您可以使用macenv set来设置环境变量,例如:

macenv set JAVA_HOME /path/to/java/home

在底层,它调用launchctl setenv来设置环境变量,同时将环境变量保存到~/.launchd.conf中,并注册一个自动启动服务来在操作系统重新启动时加载环境变量。

对于2020年Mac OS X Catalina用户:

忘掉其他没用的答案吧,这里只需要两个步骤:

创建一个命名约定为priority-appname的文件。然后复制粘贴要添加到path中的路径。 例如80-vscode与内容/应用程序/Visual Studio代码。在我的例子中,app/Contents/Resources/app/bin/。 将该文件移动到/etc/paths.d/。不要忘记在终端中打开一个新选项卡(新会话)并输入echo $PATH来检查您的路径是否被添加!

注意:此方法仅将路径追加到path。

对于GUI应用程序,你必须创建和编辑~/. macosx /environment.plist。详情请点击这里。您需要注销才能生效。我不确定它们是否也会影响从终端启动的应用程序,但我认为它们会。

对于从Terminal启动的应用程序,您还可以编辑~/。概要文件。

只需要打开~/。配置文件,通过nano在终端,并键入:

export PATH=whatever/you/want:$PATH

保存该文件(cmd+X和Y)。 之后,请注销/登录再次或只是在终端打开一个新选项卡,并尝试使用您的新变量。

请不要忘记在/you/想要的东西后面加上“:$PATH”,否则你会删除PATH变量中之前的所有路径。

你可以阅读linux,它与Mac OS X非常接近。或者你可以阅读BSD Unix,它更接近一些。在大多数情况下,Linux和BSD之间的差异并不大。

/etc/profile为系统环境变量。

~ /。概要文件是用户特定的环境变量。

“我应该在哪里设置JAVA_HOME变量?”

您是否有多个用户?他们在乎吗?你会因为修改/etc/profile而把其他用户搞得一团糟吗?

一般来说,即使我是唯一的用户,我也不喜欢打乱系统范围的设置。我更喜欢编辑我的本地设置。