java - 如何在mac上设置和使用环境变量
问题描述
在mac(Big Sur)上创建永久环境变量,然后在java项目中使用它的正确(2021方式)是什么。
关于这个主题有很多非常古老的帖子。如今,它们似乎都无法正常工作。
- 如何添加永久环境值(通过终端)
- 以及如何在 java 代码中使用它
(我也不确定如何将我的 testvar=testvalue 添加到列表中,因为我尝试了很多文件 [尽管它们似乎都不起作用],通过将“export testvar=testvalue”添加到以下文件:
- /etc/路径
- ~/.bashrc
- ~/.bash_profile
- ~/.profile
- /etc/profile
同样在将其插入每个文件后,我使用了 source {file}
所以在这一点上,我不知道哪种是创建和永久拥有它的正确方法,并且能够在我的 java 代码中使用它)
到目前为止,我可以将变量打印到终端中
printenv
我的变量正在列出,例如:
testvar=testvalue
在我的java代码中,使用时我得到null:
System.getenv("testvar")
但是使用其他变量名 - 这不是我创建的,但 macos 系统 - (例如 "USER" )按预期打印值。
解决方案
macOS Big Sur 使用zsh作为默认登录 shell 和交互式 shell。
如果您正在使用 bash 配置文件,例如设置环境变量、别名或路径变量,您应该切换到使用 zsh 等效项。例如:
.zprofile
等效于.bash_profile
并在登录时运行,包括通过 SSH.zshrc
等效于.bashrc
并为每个新的终端会话运行
您可以在那里创建.zprofile
并输入环境变量。
推荐阅读
- javascript - 随机化/随机播放包含 iframe 的 Div 元素
- ionic-framework - 我正在使用离子5。但是有一个问题
- html - Blazor WASM:显示 MarkupString 的组件实例被其他实例干扰
- heroku - Heroku H31 生产错误,“读取响应标头时上游过早关闭连接” - 这是“我们”还是“他们”的问题?
- firebase - 如何订阅 Flutter Firebase Messaging 中的子集合?
- yugabyte-db - 在具有首选区域的多区域部署中,无法在 YugbyteDB 中创建表
- vba - VBA - 添加到现有公式
- ios - Xcode 在签署应用程序时没有选择正确的证书
- r - R 中的 shell() 是否记得前面的命令?
- c# - 如何序列化具有 xml 元素作为属性的类,没有重复节点?