Java【MacBook pro下安装两种版本的jdk并切换】

来源:互联网 发布:js节点操作 编辑:程序博客网 时间:2024/06/11 18:58

1. 问题

        最近Mac OS电脑需要配置Hadoop环境,需要用到jdk 1.7。

[html] view plain copy
  1. Java Development Kit (JDK)  
  2.   
  3. Please note, since there are no available supported OpenJDK 8 packages for Ubuntu 14.04, the Ubuntu 15.04 packages must be   
  4. installed manually. See JDK for Ubuntu LTS 14.04 for precise instructions.  
  5.   
  6. The master branch of Android in AOSP: Ubuntu - OpenJDK 8, Mac OS - jdk 8u45 or newer  
  7. Android 5.x (Lollipop) - Android 6.0 (Marshmallow): Ubuntu - OpenJDK 7, Mac OS - jdk-7u71-macosx-x64.dmg  
  8. Android 2.3.x (Gingerbread) - Android 4.4.x (KitKat): Ubuntu - Java JDK 6, Mac OS - Java JDK 6  
  9. Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Ubuntu - Java JDK 5  


        于是我安装了Mac版的jdk 1.7(安装过程很简单,下载dmg包之后直接双击就好了,默认的路径是/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home)。

想到了一个办法:在系统里安装两个版本的jdk,使用的时候通过修改环境变量进行切换,这样就可以在同一个用户下进行版本切换了。

        我查了一下资料,看到网上有人提出一种方法:安装多个版本的jdk,使用alias命令对版本切换的命令重命名,然后再使用的时候直接调用命令的别名就可以了(具体参见http://chessman-126-com.iteye.com/blog/2162466)。关于这个alias命令,从字面上看就是别名的意思,用户可利用alias,自定指令的别名。(从这一点来看,Mac OS和Linux差不多嘛)。

2. 解决方案

        在Mac OS下打开终端,输入如下命令:

[plain] view plain copy
  1. vi .bash_profile  
        这个命令执行完了会进入bash_profile文件里,我们先敲一下键盘上的“i”,让它进入insert模式,然后输入以下内容(这里要依据你安装的不同的jdk版本来输入,我的电脑上先安装了jdk 1.7,之后又安装了jdk 1.8,我们要先弄清楚他们的目录在哪里然后再编辑bash_profile文件,查询jdk目录可以使用命令/usr/libexec/java_home -v,因为电脑里安装了多个版本的jdk,如果只输入上述命令的话他只会告诉你最近一次安装的jdk的目录在哪里,因此,要想查询不同版本的jdk目录,应该在“-v”后面空一格再输入1.7或者1.8或者别的什么版本号就可以):

[plain] view plain copy
  1. # 设置 JDK 7  
  2. export JAVA_7_HOME=`/usr/libexec/java_home -v 1.7`  
  3. # 设置 JDK 8  
  4. export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`  
  5.   
  6. #默认JDK 7  
  7. export JAVA_HOME=$JAVA_7_HOME  
  8.   
  9. #alias命令动态切换JDK版本  
  10. alias jdk7="export JAVA_HOME=$JAVA_7_HOME"  
  11. alias jdk8="export JAVA_HOME=$JAVA_8_HOME"  
        最后我们使用命令

[plain] view plain copy
  1. source .bash_profile  
        使之生效就可以了。

3. 实现效果

        先看一下当下的jdk版本

[plain] view plain copy
  1. liuyunhaodeMacBook-Pro:~ liuyunhao$ java -version  
  2. java version "1.8.0_101"  
  3. Java(TM) SE Runtime Environment (build 1.8.0_101-b13)  
  4. Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)  
        然后我们使用jdk7这个命令来改变当前的jdk版本,在终端输入“jdk7”即可,然后再查看版本:

[plain] view plain copy
  1. liuyunhaodeMacBook-Pro:~ liuyunhao$ jdk7  
  2. liuyunhaodeMacBook-Pro:~ liuyunhao$ java -version  
  3. java version "1.7.0_71"  
  4. Java(TM) SE Runtime Environment (build 1.7.0_71-b14)  
  5. Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)  

        成功!