MacBook pro下安装两种版本的jdk并相互切换

1. 问题

        最近从Linux平台下转战Mac OS,在这个平台下配置android开发环境和android源码编译环境。从android open source project上的信息可以看出,编译android 5.x的源码需要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)。


        当我搭建好源码编译的环境后,准备再搭建一个android开发环境(android studio),但是在装好android studio之后,我发现最新版的android studio只支持jdk 1.8以上的版本。这样的话我就不能同时拥有源码编译环境和开发环境了。我询问了一下身边的朋友,他们的做法是建立两个账户,一个平时使用,另一个专门用于android源码编译。这种方法的缺点是切换的时候要注销另一个账户,我可不想这么麻烦,于是我想到了一个办法:在系统里安装两个版本的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)  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值