如何在 macOS 上设置 JAVA_HOME 环境变量?

How to set JAVA_HOME environment variable on macOS?

根据这个mobilefirst tutorial,它提到:

您必须将 JAVA_HOME 环境变量设置为您的 JDK 目录。

例如:

Mac OSX: /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home

我在 .bash_profile:

中添加了这两行
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
export PATH=$PATH:$JAVA_HOME/Contents/Commands

这是正确的吗?

谢谢。

在.bash_profile:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.xx/Contents/Home

添加以下答案以帮助正在寻找有关如何在 Mac.

上设置 Java_Home 的分步说明的用户
  1. 判断是否安装了Java,使用以下命令:

    which java
    

你会得到这样的东西 - /usr/bin/java

  1. 下一步将确定使用以下命令安装的 Java 的版本:

    java -version
    

您会看到类似 java 版本“1.8.0_131”的内容

  1. 下一步将获取安装 Java 的位置:

    cd /Library/Java
    
  2. Java文件夹下,select之前显示版本的文件夹:

    /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
    
  3. 接下来检查 Java_Home 是否设置到正确的位置:

    echo $JAVA_HOME
    

如果尚未设置,将导致空白输出。如果它 return 是位置,请检查它是否指向正确的文件夹。

  1. 您可以使用以下命令添加或更新 Java_Home:

    vi ~/.bash_profile
    

按 "Shift + g" 导航到文件末尾。 现在按 "i" 进入插入模式。 在 mac

上替换 java 主目录的路径后,在 bash_profile 中添加以下行
    # Setting Java_Home
    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

按 Esc 键保存,然后按“:wq!”

  1. 最后打开一个新终端window并测试变量设置是否正确:

    echo $JAVA_HOME
    

应该returnJava_Home路径设置

请注意,这在 OpenJDK 版本 11 中仍然有效。如原始问题所示,java_home 实用程序存在于 /usr/libexec 中,它可能不在您的$PATH。您可以 运行 直接在终端 window 中执行命令,这里也是示例输出:

$ /usr/libexec/java_home -v 11
/Library/Java/JavaVirtualMachines/jdk-11.0.4.jdk/Contents/Home

并将 JAVA_HOME 设置为该值。更好的是,按照 @user1872384 在原始问题中的建议连接 shell 脚本的点文件,因为这样您的环境会在安装时自动跟上 JDK 升级。

如果你的默认终端是 /bin/zsh (Z Shell) 就像我的情况一样,那么你应该在 ~/.zshenv 文件内容如下:

export JAVA_HOME="$(/usr/libexec/java_home)"

类似地,任何其他上述未提及的终端类型,您应该在其各自的终端环境文件中设置环境变量。

将内容保存到env文件后,重启终端并调用以下命令:

echo $JAVA_HOME

它应该显示完整的 Java 路径。