管理、安装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