您的位置:首页 > 编程语言 > Java开发

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

2018-03-12 18:55 405 查看

1. 问题

        最近从Linux平台下转战Mac OS,在这个平台下配置android开发环境和android源码编译环境。从android open source project上的信息可以看出,编译android 5.x的源码需要jdk 1.7的环境。[html] view plain copyJava 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下打开终端,输入如下命令:[plain] view plain copyvi .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# 设置 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"  
        最后我们使用命令[plain] view plain copysource .bash_profile  
        使之生效就可以了。

3. 实现效果

        先看一下当下的jdk版本[plain] view plain copyliuyunhaodeMacBook-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”即可,然后再查看版本:[plain] view plain copyliuyunhaodeMacBook-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)  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: