在macOS中安裝並切換使用多個版本JDK

目前我工做中使用的JDK版本是JDK 8。今天打算好好研究一下JDK 6/7的方法區實現——永久代,與JDK 8的方法區實現——元空間的差異,因此就要在自用的MBP上面安裝兩個舊版本,而且保證它們能夠共存,用完還能夠隨時切換。java

下載

Oracle官網不提供適用於Mac的JDK 6,蘋果官網有專用版本,傳送門:https://support.apple.com/kb/DL1572?locale=zh_CN。
目前在官網下載JDK 8以前的版本都須要強制註冊Oracle帳號,比較繁瑣。找到了一個Mac版JDK 7u80的百度雲傳送門:https://pan.baidu.com/s/1eSxoxxg。
下載下來的都是.dmg文件,直接打開安裝就完事了。vim

java_home工具

macOS/OS X從很早以前就自帶了檢查JDK安裝路徑的工具,即/usr/libexec/java_home。若是直接執行,就返回當前的$JAVA_HOME設置:bash

lmagic@LM-MBP15-M15 ~ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home

加上-V參數,就能夠列出全部的JDK安裝路徑:app

lmagic@LM-MBP15-M15 ~ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    1.8.0_181, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
    1.7.0_80, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
    1.6.0_65-b14-468, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home

加上-v參數並指定版本,就返回特定版本的JDK安裝路徑:工具

lmagic@LM-MBP15-M15 ~ /usr/libexec/java_home -v 1.6
/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

利用它就能夠方便地在各個版本之間切換了。命令行

修改環境變量

執行vim ~/.bash_profile,而後加入以下內容:code

export JAVA_HOME_JDK6=`/usr/libexec/java_home -v 1.6`
export JAVA_HOME_JDK7=`/usr/libexec/java_home -v 1.7`
export JAVA_HOME_JDK8=`/usr/libexec/java_home -v 1.8`

export JAVA_HOME=$JAVA_HOME_JDK8

alias switch_jdk6="export JAVA_HOME=$JAVA_HOME_JDK6"
alias switch_jdk7="export JAVA_HOME=$JAVA_HOME_JDK7"
alias switch_jdk8="export JAVA_HOME=$JAVA_HOME_JDK8"

以後在命令行中執行switch_jdk6/7/8別名命令,就能夠在JDK之間切換。若是是使用ZSH的話,就在.zshrc中加入上面的內容,或者直接寫上source ~/.bash_profile便可。it

相關文章
相關標籤/搜索