Java【MacBook pro下安裝兩種版本的jdk並切換】
阿新 • • 發佈:2019-01-25
1. 問題
最近Mac OS電腦需要配置Hadoop環境,需要用到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)。
想到了一個辦法:在系統裡安裝兩個版本的jdk,使用的時候通過修改環境變數進行切換,這樣就可以在同一個使用者下進行版本切換了。
我查了一下資料,看到網上有人提出一種方法:安裝多個版本的jdk,使用alias命令對版本切換的命令重新命名,然後再使用的時候直接呼叫命令的別名就可以了(具體參見http://chessman-126-com.iteye.com/blog/2162466)。關於這個alias命令,從字面上看就是別名的意思,使用者可利用alias,自定指令的別名。(從這一點來看,Mac OS和Linux差不多嘛)。
2. 解決方案
在Mac OS下開啟終端,輸入如下命令:
- vi .bash_profile
- # 設定 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)
- 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)
成功!