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

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


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


编辑:

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


当前回答

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

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

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

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

其他回答

使用osx-env-sync从单个源同步命令行和GUI应用程序的OS X环境变量。

我还在这里发布了一个相关问题的答案。

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

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

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

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

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

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

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

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

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

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

来吧:

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