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

1. 问题

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

Java Development Kit (JDK)

Please note, since there are no available supported OpenJDK 8 packages for Ubuntu 14.04, the Ubuntu 15.04 packages must be 
installed manually. See JDK for Ubuntu LTS 14.04 for precise instructions.

The master branch of Android in AOSP: Ubuntu - OpenJDK 8, Mac OS - jdk 8u45 or newer
Android 5.x (Lollipop) - Android 6.0 (Marshmallow): Ubuntu - OpenJDK 7, Mac OS - jdk-7u71-macosx-x64.dmg
Android 2.3.x (Gingerbread) - Android 4.4.x (KitKat): Ubuntu - Java JDK 6, Mac OS - Java JDK 6
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下打开终端,输入如下命令:

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或者别的什么版本号就可以):

# 设置 JDK 7
export JAVA_7_HOME=`/usr/libexec/java_home -v 1.7`
# 设置 JDK 8
export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`

#默认JDK 7
export JAVA_HOME=$JAVA_7_HOME

#alias命令动态切换JDK版本
alias jdk7="export JAVA_HOME=$JAVA_7_HOME"
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
        最后我们使用命令

source .bash_profile
        使之生效就可以了。

3. 实现效果

        先看一下当下的jdk版本

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

liuyunhaodeMacBook-Pro:~ liuyunhao$ jdk7
liuyunhaodeMacBook-Pro:~ liuyunhao$ java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

        成功!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值