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

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


当前回答

我的方法是:

. bashrc

export JAVA6_HOME=`/usr/libexec/java_home -v 1.6`
export JAVA7_HOME=`/usr/libexec/java_home -v 1.7`
export JAVA_HOME=$JAVA6_HOME

# -- optional
# export PATH=$JAVA_HOME/bin:$PATH

这使得在J6和J7之间切换非常容易

其他回答

更新的Oracle jvm(如1.7.0_21-b12)似乎安装在这里:

/Library/Internet\ 插件/JavaAppletPlugin.plugin/Content/Home

在netbeans.conf文件中设置1.8版本的jdk java_home:

/Applications/NetBeans/NetBeans 8.2.app/Contents/Resources/NetBeans/etc/netbeans.conf

取消:

netbeans_jdkhome="path/to/jdk"

并设置路径到你的1.8 jdk,在我的情况下:

netbeans_jdkhome="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home"

这种方法让你在mac os上拥有多个jdk版本

我的方法是:

. bashrc

export JAVA6_HOME=`/usr/libexec/java_home -v 1.6`
export JAVA7_HOME=`/usr/libexec/java_home -v 1.7`
export JAVA_HOME=$JAVA6_HOME

# -- optional
# export PATH=$JAVA_HOME/bin:$PATH

这使得在J6和J7之间切换非常容易

上面的答案对我没有帮助。我想所有的答案都适用于更老的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文件的内容。

如果你需要在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。