Java是macOS最新版本的可选包。

然而,一旦安装,JAVA_HOME环境变量似乎没有正确设置。


当前回答

一个更好的(更可升级的)方法是使用以下方法:

/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home

这应该与AWS一起工作,因为它在Home下面有bin

其他回答

如果你需要在Mac OS X (Yosemite)下使用多个版本的JDK,添加一些脚本以便在它们之间自动切换可能会很有帮助。

您要做的就是编辑~/。Bash_profile,并添加如下内容:

function setjdk() {
  if [ $# -ne 0 ]; then
   removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
   if [ -n "${JAVA_HOME+x}" ]; then
    removeFromPath $JAVA_HOME
   fi
   export JAVA_HOME=`/usr/libexec/java_home -v $@`
   export PATH=$JAVA_HOME/bin:$PATH
  fi
 }
 function removeFromPath() {
  export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
 }
setjdk 1.7

该脚本所做的是首先删除PATH中的其他JDK版本,这样它们就不会干扰我们的新JDK版本。然后,它巧妙地使用了/usr/libexec/java_home命令,该命令列出了已安装的JDK版本。-v参数告诉java_home返回JDK提供版本的路径,例如1.7。我们还将PATH更新为指向新找到的JAVA_HOME目录的bin目录。最后,我们可以简单地使用

setjdk 1.7

它会选择最新安装的1.7分支JDK版本。要选择一个特定的版本,只需执行即可

setjdk 1.7.0_51

代替。运行/usr/libexec/java_home -V以获得关于如何选择版本的更多详细信息。

附注:不要忘记来源~/。保存后的Bash_profile。

对于Java 11 (JDK 11),可以使用以下命令找到它:

/usr/libexec/java_home -v 11

下面的方法对我很有效。我在OSX Yosemite上使用ZSH安装了Java 8。

下面的命令/usr/libexec/java_home会生成JDK home的路径:

/ Library / Java / JavaVirtualMachines jdk1 8月0_05 jdk /地点/ Home。

在~/.zshrc中,

export JAVA_HOME = "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home"

上面的答案对我没有帮助。我想所有的答案都适用于更老的OS X

对于OS X Yosemite 10.10,请按照以下步骤操作

使用您喜欢的文本编辑器打开~/.bash_profile

//This command will open the file using vim
$ vim ~/.bash_profile

在文件中添加以下行并保存(:后面加“x”表示vim):

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

然后在终端输入以下两个命令查看输出:

$ source ~/.bash_profile

$ echo $JAVA_HOME

在第二行中,您正在更新.bash_profile文件的内容。

OSX Yosemite, ZSH和Java SE运行时环境8,我不得不:

$ sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands /System/Library/Frameworks/JavaVM.framework/Versions/Current/bin

在~/中。将JAVA_HOME更改为 出口JAVA_HOME = " /系统/图书馆/框架/ JavaVM.framework /版本/当前”