目前我工做中使用的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
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