如何在mac上准确设置和使用环境变量

Jan*_*ano 12 java macos terminal environment-variables

在 mac(Big Sur)上创建永久环境变量,然后在 java 项目中使用它的正确(2021 方式)是什么。

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

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

(我也不确定我是如何将我的 testvar=testvalue 添加到列表中的,因为我尝试了很多文件 [尽管它们似乎都不起作用],通过将“export testvar=testvalue”添加到以下文件中:

  • /etc/路径
  • ~/.bashrc
  • ~/.bash_profile
  • ~/.profile
  • /etc/配置文件

同样在将其插入每个文件后,我使用了 source {file}

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

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

printenv
Run Code Online (Sandbox Code Playgroud)

我的变量被列出,例如:

testvar=testvalue
Run Code Online (Sandbox Code Playgroud)

在我的 java 代码中,我在使用时得到null

System.getenv("testvar")
Run Code Online (Sandbox Code Playgroud)

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

Ank*_*Rai 10

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

如果您使用 bash 配置文件,例如设置环境变量、别名或路径变量,您应该切换到使用 zsh 等价物。例如:

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

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

参考:https : //mamk2118.medium.com/setting-up-environment-variables-in-macos-mojave-and-mac-os-catalina-27ea1bb032f3

  • 通过创建 `.zprofile` 并在 `export [variable_name]=[variable_value]` 中添加类似这样的条目,我在 Big Sur 上使用永久环境变量取得了成功。也有帮助:[如何在 MacOS 中设置环境变量](https://phoenixnap.com/kb/set-environment-variable-mac) (2认同)

Dhe*_*raj 10

您可以使用以下命令编辑 zprofile

sudo nano ~/.zprofile
Run Code Online (Sandbox Code Playgroud)

并添加您的 PATH 变量。

# Setting PATH for Python 3.9
# The original version is saved in .zprofile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH
Run Code Online (Sandbox Code Playgroud)

要向 PATH 变量添加多个值,只需添加更多PATH键即可。例如,这就是我在 M1 mac Monterey 中添加多个路径变量的方法

# Setting PATH for Python 3.9
# The original version is saved in .zprofile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
PATH="/Users/<name>/.local/bin"
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
export PATH
Run Code Online (Sandbox Code Playgroud)


Oli*_*idt 1

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

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