如何在 Mac 上设置和使用环境变量?

在Mac(macOS Big Sur)上创建永久环境变量并将其用于Java项目的正确(2021年方法)是什么?

关于这个话题有很多非常古老的帖子。如今,它们似乎都无法正常工作。

  1. 如何添加永久环境值(通过终端)?
  2. 如何在Java代码中使用它?

我也不确定我如何能够将我的添加到列表中,因为我通过添加到以下文件尝试了这么多文件(尽管似乎没有一个文件有效):testvar=testvalueexport testvar=testvalue

  • /etc/paths
  • ~/.bashrc
  • ~/.bash_profile
  • ~/.profile
  • /etc/profile

同样在将其插入到我使用的每个文件中后。source {file}

因此,在这一点上,我不知道哪种是创建和永久拥有它的正确方法,并且能够在我的Java代码中使用它。

到目前为止,我可以像这样将变量打印到终端中:

printenv

我的变量正在被列出,例如:

testvar=testvalue

在我的Java代码中,我在使用以下内容时得到空值

System.getenv("testvar")

但是使用不是由我创建的其他变量名称,而是macOS系统(例如。“用户”) 按预期打印值。


答案 1

macOS Big Sur 使用 zsh 作为默认的登录 shell 和交互式 shell。

如果您使用的是 Bash 配置文件,例如设置环境变量、别名或路径变量,则应切换到使用 zsh 等效项。

例如:

  • .zprofile等效于登录并在登录时运行,包括通过 SSH.bash_profile
  • .zshrc等效于并为每个新的终端会话运行.bashrc

您可以在此处创建并输入输入环境变量。.zprofile


参考


答案 2

这取决于您正在使用的 shell。对于Big Sur,标准的shell是zsh,这可以解释为什么和其他与bash相关的配置文件不起作用。如果要在 zsh 中为帐户设置环境变量,请尝试创建一个文件并将变量声明放在其中。.bashrc~/.zshenv

另请参见:http://zsh.sourceforge.net/Doc/Release/Files.html#Files


推荐