[轉(zhuǎn)]MAC下安裝多版本JDK和切換幾種方式

轉(zhuǎn)

http://blog.csdn.net/tianxiawuzhei/article/details/48263789
MAC AIR,OS X 10.10,64位
 
歷史:
過去 Mac 上的 Java 都是由 Apple 自己提供英支,只支持到 Java 6券膀,并且OS X 10.7 開始系統(tǒng)并不自帶(而是可選安裝)(原自帶的是1.6)炉旷。
后來 Apple 加入 OpenJDK 繼續(xù)支持 Java 6艾栋,而 Java 7 將由 Oracle 負責(zé)提供。
 
在終端中輸入java -version可查看當前JDK版本信息抹沪,如果還沒安裝任一JDK件缸,就會提示安裝公荧,點擊后會跳到oralce java的下載網(wǎng)頁。
 
安裝包(注意都是下載mac下的dmg安裝包):
JDK 1.6(驗證OS X 10.10可用):http://support.apple.com/kb/DL1572
JDK 1.7&1.8(1.7在頁面下方):http://www.oracle.com/technetwork/java/javase/downloads/index.html
 
安裝:
dmg安裝包微渠,安裝過程如一般程序搭幻,略
 
最終安裝目錄(版本號根據(jù)情況略有不同):
JDK 1.6:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk
 
JDK 1.7&1.8:
/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk
 
推薦方式A:
Java代碼  收藏代碼
vi .bash_profile 輸入以下內(nèi)容  
然后執(zhí)行source .bash_profile生效新配置  
 
Java代碼  收藏代碼
# Mac默認 JDK 6(Mac默認自帶了一個jdk6版本)  
export JAVA_6_HOME=`/usr/libexec/java_home -v 1.6`  
# 設(shè)置 JDK 7  
export JAVA_7_HOME=`/usr/libexec/java_home -v 1.7`  
# 設(shè)置 JDK 8  
export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`  
  
#默認JDK 6  
export JAVA_HOME=$JAVA_6_HOME  
  
#alias命令動態(tài)切換JDK版本  
alias jdk6="export JAVA_HOME=$JAVA_6_HOME"  
alias jdk7="export JAVA_HOME=$JAVA_7_HOME"  
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"  
 
 默認jdk為1.6,執(zhí)行jdk6或jdk7或jdk8后,通過java -version可看到已切換成相應(yīng)版本逞盆。
 
推薦方式B:
1檀蹋、安裝jenv
執(zhí)行:curl -s get.jenv.io | bash
jenv參考(關(guān)鍵是方便別的java工具管理):https://github.com/linux-china/jenv/wiki/Chinese-Introduction
2、進入jenv目錄,然后建相關(guān)目錄:
Java代碼  收藏代碼
cd ~/.jenv/candidates/  
mkdir java  
cd java  
mkdir 1.6  
mkdir 1.7  
mkdir 1.8  
 
3云芦、執(zhí)行以下命令:
Java代碼  收藏代碼
ln -s /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.6  
ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.7  
ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.8  
 
大功告成:
1俯逾、最先默認的jdk一般是你最后安裝的那jdk贸桶。
2、切換版本:jenv use java 1.8
3桌肴、設(shè)置缺少版本:jenv default java 1.6
 
不推薦方式:
Java代碼  收藏代碼
#區(qū)別在于:此部分是寫死路徑的  
export JAVA_6_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home  
export JAVA_7_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home  
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home  
  
#默認JDK 6  
export JAVA_HOME=$JAVA_6_HOME  
  
#alias命令動態(tài)切換JDK版本  
alias jdk6="export JAVA_HOME=$JAVA_6_HOME"  
alias jdk7="export JAVA_HOME=$JAVA_7_HOME"  
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"  
 
根據(jù)蘋果的官方說明皇筛,Mac OS X 10.5 及以后的版本應(yīng)該使用 /usr/libexec/java_home 命令來確定 JAVA_HOME (推薦方式A就是依據(jù)此原理)。
例:
Java代碼  收藏代碼
//查看默認jdk的安裝路徑  
/usr/libexec/java_home  
  
//查看jdk 1.6的安裝路徑  
/usr/libexec/java_home -v 1.6  
 
而在此之前的版本由于沒有這個命令坠七,則應(yīng)該使用固定的 /Library/Java/Home 目錄水醋,也就是直接在環(huán)境變量中寫死。
Java代碼  收藏代碼
//下面的幾個目錄其實是等價的鏈接關(guān)系灼捂,都指向的是默認的JDK离例。但是硬編碼方式,不推薦悉稠。  
JAVA_HOME=/Library/Java/Home  
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home  
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home  
 因為不同的 Java 版本和不同的 Java 實現(xiàn)可能安裝在了不同的目錄下宫蛆,所以使用硬編碼的目錄會有如下缺點:
安裝或升級新的 Java 后需要重新設(shè)置 JAVA_HOME(尤其是帶版本號的目錄)
無法適應(yīng)不同的 Java 實現(xiàn)(Apple和Oracle的)
其他分析:
1、打開終端輸入執(zhí)行:which java的猛,顯示/usr/bin/java
2耀盗、執(zhí)行cd /usr/bin/,再執(zhí)行l(wèi)s -ll |grep java卦尊,可看到j(luò)ava此命令是link到/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
3叛拷、執(zhí)行:cd /System/Library/Frameworks/JavaVM.framework/Versions/ 進入后,再執(zhí)行l(wèi)s -ll岂却,可看到Current -> A忿薇,也就是Current目錄link到A目錄。而A目錄在安裝第一個JDK時就存在躏哩,用來JDK多版本管理使用的(猜測是使用到JAVA_HOME)署浩。
另外:
/System/Library/Frameworks/JavaVM.framework/Versions/ 下有多個不同(低)版本的目錄,但它們鏈接的都是 CurrentJDK 目錄扫尺〗疃埃總之,這些Java都是蘋果提供的Java正驻,Oracle 或 OpenJDK 提供的 Java 不在此目錄中弊攘。
據(jù)說以前可在系統(tǒng)設(shè)置中“Java Preferences”對話框可設(shè)置當前jdk,再自動調(diào)整A目錄內(nèi)容姑曙,但我沒看到過襟交。
Java 7 需要 Mac OS X 10.7.3 (Lion) 及以上版本才能安裝。在瀏覽器中運行Java要求是64位瀏覽器伤靠,所以不支持Chrome捣域, Safari 或 Firefox 沒問題。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市竟宋,隨后出現(xiàn)的幾起案子提完,更是在濱河造成了極大的恐慌,老刑警劉巖丘侠,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徒欣,死亡現(xiàn)場離奇詭異,居然都是意外死亡蜗字,警方通過查閱死者的電腦和手機打肝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挪捕,“玉大人粗梭,你說我怎么就攤上這事〖读悖” “怎么了断医?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長奏纪。 經(jīng)常有香客問我鉴嗤,道長,這世上最難降的妖魔是什么序调? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任醉锅,我火速辦了婚禮,結(jié)果婚禮上发绢,老公的妹妹穿的比我還像新娘硬耍。我一直安慰自己,他們只是感情好边酒,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布经柴。 她就那樣靜靜地躺著,像睡著了一般甚纲。 火紅的嫁衣襯著肌膚如雪口锭。 梳的紋絲不亂的頭發(fā)上朦前,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天介杆,我揣著相機與錄音,去河邊找鬼韭寸。 笑死春哨,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的恩伺。 我是一名探鬼主播赴背,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了凰荚?” 一聲冷哼從身側(cè)響起燃观,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎便瑟,沒想到半個月后缆毁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡到涂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年脊框,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片践啄。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡浇雹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屿讽,到底是詐尸還是另有隱情昭灵,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布伐谈,位于F島的核電站虎锚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏衩婚。R本人自食惡果不足惜窜护,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望非春。 院中可真熱鬧柱徙,春花似錦、人聲如沸奇昙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽储耐。三九已至羊初,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間什湘,已是汗流浹背长赞。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留闽撤,地道東北人得哆。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像哟旗,于是被迫代替她去往敵國和親贩据。 傳聞我的和親對象是個殘疾皇子栋操,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容