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

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


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


编辑:

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


当前回答

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

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

其他回答

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

export PATH=whatever/you/want:$PATH

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

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

我认为OP正在寻找的是一个简单的、类似于windows的解决方案。

来吧:

https://www.macupdate.com/app/mac/14617/rcenvironment

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

https://github.com/yuezk/macenv

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

macenv set JAVA_HOME /path/to/java/home

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

没有必要重复。您可以使用launchctl setenv设置launchd(和子进程,即从Spotlight启动的任何进程)使用的环境变量。

例如,如果你想在.bashrc或其他文件中设置启动后镜像当前路径:

PATH=whatever:you:want
launchctl setenv PATH $PATH

环境变量不会在运行中的应用程序中自动更新。你将需要重新启动应用程序来获得更新的环境变量(尽管你可以在你的shell中设置变量,例如PATH=whatever: You:want;没有必要重新启动终端)。

如果要永久修改macOS环境变量,请将环境变量设置为“/etc/paths.”注意,默认情况下这个文件是只读的,所以您必须使用chmod来获得写权限。