管理、安裝Java for Mac

管理、安裝Java for Mac

Mac OSX 已經預裝好Java環境,但有可是舊版的,像OS X 10.10內建的是Java 1.6:

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

安裝

有在開發或使用Java應用可能需要最新版本時就必需安裝新版的Java環境,現在是Java 7為主,所以需要自行到官網下載新版的,

默認安裝好的Java 7路徑會是在:

/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home

設定默認環境

利用編輯軟體開啟 ~/.bash_profile:

vi ~/.bash_profile

增加Java環境變數:

export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH

這樣每次進入終端機(Terminal)時就會將Java Home的路徑加上去,使用新版的Java環境。

Java Home

設定環境變數時有看到執行檔java_home,它是OS X上管理每個Java版本路徑的程式,你可以利用它得知目前的Java有安裝哪些版本及路徑,單執行java_home

/usr/libexec/java_home

會返回目前使用Java最高版本的路徑:

/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home

加上它的參數-V能得知目前各版本的路徑:

/usr/libexec/java_home -V

注意參數為大寫的V,執行後會返回訊息:

Matching Java Virtual Machines (3):
    1.7.0_71, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
    1.6.0_65-b14-466.1, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-466.1, i386:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home

手動切換Java預設版本

Java Home預設返回為最高版本的Java環境路徑,如果想要自由切換Java版本路徑的話可以參考How to switch JDK version on Mac OS X,在.bash_profile上加入幾個Script指令來擷取你要指定版本的路徑並加入PATH中:

function setjdk() {
  if [ $# -ne 0 ]; then
   removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
   if [ -n "${JAVA_HOME+x}" ]; then
    removeFromPath $JAVA_HOME
   fi
   export JAVA_HOME=`/usr/libexec/java_home -v $@`
   export PATH=$JAVA_HOME/bin:$PATH
  fi
 }
 function removeFromPath() {
  export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
 }
setjdk 1.7

如此你進入終端機(Terminal)時直接執行寫好的setjdk來指定你要的版本,假設我的環境中有1.6那你就可以執行:

setjdk 1.6