MAC下安装多版本Java JDK和切换几种方式

来源:互联网 发布:师洋的淘宝店是正品吗 编辑:程序博客网 时间:2024/05/29 07:42

</pre>环境:<p></p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px">MAC AIR,OS X 10.10,64位</p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"></p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"></p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"><strong>历史:</strong></p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px">过去 Mac 上的 <a target=_blank target="_blank" href="http://lib.csdn.net/base/javaee" class="replace_word" title="Java EE知识库" style="color:rgb(223,52,52); text-decoration:none; font-weight:bold">Java</a> 都是由 Apple 自己提供,只支持到 <a target=_blank target="_blank" href="http://lib.csdn.net/base/java" class="replace_word" title="Java 知识库" style="color:rgb(223,52,52); text-decoration:none; font-weight:bold">Java </a>6,并且OS X 10.7 开始系统并不自带(而是可选安装)(原自带的是1.6)。</p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px">后来 Apple 加入 OpenJDK 继续支持 Java 6,而 Java 7 将由 <a target=_blank target="_blank" href="http://lib.csdn.net/base/oracle" class="replace_word" title="Oracle知识库" style="color:rgb(223,52,52); text-decoration:none; font-weight:bold">Oracle</a> 负责提供。</p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"> </p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px">在终端中输入java -version可查看当前JDK版本信息,如果还没安装任一JDK,就会提示安装,点击后会跳到oralce java的下载网页。</p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"> </p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"><strong>安装包(注意都是下载mac下的dmg安装包):</strong></p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px">JDK 1.6(验证OS X 10.10可用):http://support.apple.com/kb/DL1572</p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px">JDK 1.7&1.8(1.7在页面下方):http://www.oracle.com/technetwork/java/javase/downloads/index.html</p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"> </p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"><strong>安装:</strong></p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px">dmg安装包,安装过程如一般程序,略</p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"> </p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"><strong>最终安装目录(版本号根据情况略有不同):</strong></p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"><strong>JDK 1.6:</strong></p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px">/System/Library/Java/JavaVirtualMachines/1.6.0.jdk</p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"> </p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"><strong>JDK 1.7&1.8:</strong></p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px">/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk</p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px">/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk</p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"></p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"><span style="color:rgb(0,0,255); font-family:Helvetica,Tahoma,Arial,sans-serif; font-size:14px">推荐方式A:</span></p><p style="color:rgb(51,51,51); font-size:14px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Helvetica,Tahoma,Arial,sans-serif; line-height:25.2px"><span style="color:rgb(0,0,255); font-family:Helvetica,Tahoma,Arial,sans-serif; font-size:14px"></span></p><pre name="code" class="java"><pre name="code" class="java"> vi .bash_profile 输入以下内容   然后执行source .bash_profile生效新配置 
# Mac默认 JDK 6(Mac默认自带了一个jdk6版本)  export JAVA_6_HOME=`/usr/libexec/java_home -v 1.6`  # 设置 JDK 7  export JAVA_7_HOME=`/usr/libexec/java_home -v 1.7`  # 设置 JDK 8  export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`    #默认JDK 6  export JAVA_HOME=$JAVA_6_HOME    #alias命令动态切换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,执行jdk6或jdk7或jdk8后,通过java -version可看到已切换成相应版本。

 

推荐方式B:

1、安装jenv

执行:curl -s get.jenv.io | bash

jenv参考(关键是方便别的java工具管理):https://github.com/Linux-china/jenv/wiki/Chinese-Introduction

2、进入jenv目录,然后建相关目录:


cd ~/.jenv/candidates/  mkdir java  cd java  mkdir 1.6  mkdir 1.7  mkdir 1.8  

3、执行以下命令:

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、设置缺少版本:jenv default java 1.6


不推荐方式:

#区别在于:此部分是写死路径的  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命令动态切换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"<span style="color:#ff0000;"> </span>

根据苹果的官方说明,Mac OS X 10.5 及以后的版本应该使用 /usr/libexec/java_home 命令来确定 JAVA_HOME (推荐方式A就是依据此原理)。

例:

//查看默认jdk的安装路径  /usr/libexec/java_home    //查看jdk 1.6的安装路径  /usr/libexec/java_home -v 1.6 


而在此之前的版本由于没有这个命令,则应该使用固定的 /Library/Java/Home 目录,也就是直接在环境变量中写死。

//下面的几个目录其实是等价的链接关系,都指向的是默认的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 实现可能安装在了不同的目录下,所以使用硬编码的目录会有如下缺点:

  • 安装或升级新的 Java 后需要重新设置 JAVA_HOME(尤其是带版本号的目录)
  • 无法适应不同的 Java 实现(Apple和Oracle的)
其他分析:
1、打开终端输入执行:which java,显示/usr/bin/java
2、执行cd /usr/bin/,再执行ls -ll |grep java,可看到java此命令是link到/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
3、执行:cd /System/Library/Frameworks/JavaVM.framework/Versions/ 进入后,再执行ls -ll,可看到Current -> A,也就是Current目录link到A目录。而A目录在安装第一个JDK时就存在,用来JDK多版本管理使用的(猜测是使用到JAVA_HOME)。
另外:
/System/Library/Frameworks/JavaVM.framework/Versions/ 下有多个不同(低)版本的目录,但它们链接的都是 CurrentJDK 目录。总之,这些Java都是苹果提供的Java,Oracle 或 OpenJDK 提供的 Java 不在此目录中。
据说以前可在系统设置中“Java Preferences”对话框可设置当前jdk,再自动调整A目录内容,但我没看到过。
Java 7 需要 Mac OS X 10.7.3 (Lion) 及以上版本才能安装。在浏览器中运行Java要求是64位浏览器,所以不支持Chrome, Safari 或 Firefox 没问题。

0 0
原创粉丝点击