echo $JAVA_HOME 尽管已在 zshrc 中正确设置,但在 MacOS catalina 中返回空白

Posted

技术标签:

【中文标题】echo $JAVA_HOME 尽管已在 zshrc 中正确设置,但在 MacOS catalina 中返回空白【英文标题】:echo $JAVA_HOME returns blank in MacOS catalina despite having set it properly in zshrc 【发布时间】:2020-09-16 16:20:19 【问题描述】:

我使用最新的 MacOS catalina(10.15.4) 并在我的个人资料中使用.zshrc 作为最新版本的mac deprecated the bash shell,这是my previous unanswered question on not able to change the default java version to 1.8 using jenv 的后续问题。

当我尝试调试更多时,发现我的 echo $JAVA_HOME 总是返回空白,尽管已按以下方式设置它。

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

还有

export JAVA_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home

请注意,我在更改后获取了我的 .zshrc 文件,但仍然没有运气,尽管当我在终端上设置时它会打印正确的值,但它只在那个控制台上(如预期的那样)。

添加我的 ~/.zshrc 的内容

export JAVA_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home
#export JAVA11_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
#export JAVA14_HOME=$(/usr/libexec/java_home -v14)
#export RUNTIME_JAVA_HOME=$(/usr/libexec/java_home -v11)
export PATH=$JAVA_HOME/bin:$PATH
#export PATH="/Users/java-dev/Library/Python/3.7/bin/:$PATH"
export PATH=/usr/local/bin:$PATH
export PATH=/usr/bin:$PATH
alias sr='source ~/.zshrc'
alias rt='cd /Users/java-dev/rt'
alias dev='cd /Users/java-dev/development'
alias code='cd /Users/java-dev/code'

【问题讨论】:

你确定你没有使用 bash,尽管已弃用?请查看echo $0 所说的内容。 @FedericoklezCulloca 请参阅echo $0 -zsh 你运行source ~/.zshrc了吗?需要对 zshrc 文件应用新的更改。 @anquangman 是的,我非常清楚这一点,并且一直这样做,感谢您确认这一点:) 【参考方案1】:

在最新的 catalina OS 中更改了文件名。您需要创建一个名为 .zprofile 的文件(与您创建 .bash_profile 文件的位置相同。这需要完成,因为 .bash_profile 现在是 .zprofile)并将您的导出命令放在那里。

如果它已经存在,请将您的导出命令附加到如下文件中。

导出 PATH=$your_path$:$PATH

导出 JAVA_HOME=$your_path$

导出 M2_HOME=$your_path$

检查这个macOS Catalina 10.15(beta) - Why is ~/.bash_profile not sourced by my shell?

【讨论】:

我的主目录中也没有.bash_profile,正如我在我的问题中提到的那样,我已经在使用.zshrc,并且别名等其他东西工作正常,而且我在终端上尝试了你的命令并且在export JAVA_HOME=$your_path$ 之后,如果我执行echo $JAVA_HOME,它只会打印$,你能试试这些命令吗 如果它不存在,您能否在 /Users/(yourHomeDIr)/ 下创建一个名称为 .zprofile 的文件并设置您的 java_home,如下所示 export JAVA_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto- 8.jdk/Contents/Home(在文件中) 我遇到了类似的问题,在我的主目录中创建了一个文件名 .zprofile 后,它就得到了解决。现在 java home 和 maven home 在任何新终端中都能正确回显 不行,能否提供一下你的.zprofile的内容? 我在 com 中的用户名是 vijay。文件放在 /Users/vijay/.zprofile 下,内容是 export PATH=/Applications/apache-maven-3.6.3/bin/:$PATH export JAVA_HOME=/Library/Java/mypath。您是否尝试在新终端中发布此文件创建?

以上是关于echo $JAVA_HOME 尽管已在 zshrc 中正确设置,但在 MacOS catalina 中返回空白的主要内容,如果未能解决你的问题,请参考以下文章

linux下如何知道JAVA_HOME的目录在哪里?啥命令?

Linux配置环境变量

Linux 用命令查看JAVA_HOME

Centos7配置JAVA_HOME

CDH配置JAVA_HOME

Centos 配置JAVA_HOME