文章目录
  1. 1. Where is JDK in mac?
  2. 2. 如何在mac下安装多个版本JDK
  3. 3. 参考

最近做的项目中可能需要使用JDK1.8,但是大部分时候使用都JDK版本还是1.7,所以就有了现在的需求:在Mac上面安装多个版本的JDK。

Where is JDK in mac?

之前的电脑中安装了1.7版本(dmg文件安装),然后在~/.bash_profile中配置了环境变量为:

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

然后后来换1.8的dmg安装文件安装好之后,系统的jdk版本在没有修改任何环境变量的情况下自动变成了1.8,所以这里设置的应该不是JDK的直接地址,所以决定去看一下JDK具体安装在了哪里?

首先输入指令:

which java

可以看到我们是执行的哪里的java,这条指令返回:

/usr/bin/java

但是实际上这也只是一个替身,进入/usr/bin目录下,然后输入指令

ls -l java

我们可以发现返回如下内容:

lrwxr-xr-x  1 root  wheel  74 11 25 06:27 java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

也就是/usr/bin/java实际指向的就是/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java;但实际上这里的Current文件夹仍是替身,它指向了同目录下的某个版本,例如A文件夹(这样的好处是装了多个版本java后,可以方便地调整Current指向,使得不同版本java变成系统默认的)

这里提到的A文件夹是安装java后系统生成的。它里面的Commands文件夹下有个java可执行文件,这个java其实调用了真真正正的java原身:

/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java    

这里才是JDK实际存在的位置。

如何在mac下安装多个版本JDK

修改.bash_profile文件,添加如下内容:

export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home export 
export JAVA_7_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home export
alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk7='export JAVA_HOME=$JAVA_7_HOME'    
export JAVA_HOME=$JAVA_7_HOME
export PATH=$PATH:$JAVA_HOME/bin

只需要在shell中输入jdk7或者jdk8就可以切换JDK版本了。

参考

  1. 【Mac经验技巧】Mac上java究竟在哪里,本文彻底让你搞清楚!
  2. Mac下同时安装多个版本的JDK
文章目录
  1. 1. Where is JDK in mac?
  2. 2. 如何在mac下安装多个版本JDK
  3. 3. 参考