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

编程技术  /  houtizong 发布于 3年前   152

环境:

MAC AIR,OS X 10.10,64位

 

历史:

过去 Mac 上的 Java 都是由 Apple 自己提供,只支持到 Java 6,并且OS X 10.7 开始系统并不自带(而是可选安装)(原自带的是1.6)。

后来 Apple 加入 OpenJDK 继续支持 Java 6,而 Java 7 将由 Oracle 负责提供。

 

在终端中输入java -version可查看当前JDK版本信息,如果还没安装任一JDK,就会提示安装,点击后会跳到oralce java的下载网页。

 

安装包(注意都是下载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安装包,安装过程如一般程序,略

 

最终安装目录(版本号根据情况略有不同):

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:

vi .bash_profile 输入以下内容然后执行source .bash_profile生效新配置

 

# Mac默认 JDK 6(Mac默认自带了一个jdk6版本)export JAVA_6_HOME=`/usr/libexec/java_home -v 1.6`# 设置 JDK 7export JAVA_7_HOME=`/usr/libexec/java_home -v 1.7`# 设置 JDK 8export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`#默认JDK 6export 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 javacd javamkdir 1.6mkdir 1.7mkdir 1.8

 

3、执行以下命令:

ln -s /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.6ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.7ln -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/Homeexport JAVA_7_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Homeexport JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home#默认JDK 6export 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"

 

根据苹果的官方说明,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/HomeJAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/HomeJAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home

 因为不同的 Java 版本和不同的 Java 实现可能安装在了不同的目录下,所以使用硬编码的目录会有如下缺点:

  • 安装或升级新的 Java 后需要重新设置 JAVA_HOME(尤其是带版本号的目录)
  • 无法适应不同的 Java 实现(Apple和Oracle的)
其他分析:

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客