MAC下安装多版本JDK和切换几种方式
环境:
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默认自带了一个jdk6版本)
- export JAVA_6_HOME=`/usr/libexec/java_home -v 1.6`
- export JAVA_7_HOME=`/usr/libexec/java_home -v 1.7`
- export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`
- 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、执行以下命令:
- .jdk/Contents/Home/bin ~/.jenv/candidates/java/1.6
- .0_45.jdk/Contents/Home/bin ~/.jenv/candidates/java/1.7
- .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
不推荐方式:
- #区别在于:此部分是写死路径的
- .jdk/Contents/Home
- .0_45.jdk/Contents/Home
- .0_25.jdk/Contents/Home
- 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"
根据苹果的官方说明,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的)
MAC下安装多版本JDK和切换几种方式的更多相关文章
- ubuntu下安装多个jdk的切换命令update-alternatives
update-alternatives 以前叫alternatives 下面的介绍,直接引用了,其中必须安装了才会在候选里面出现. usage: update-alternatives --inst ...
- Mac下安装最新版本的Graphviz
由于版本兼容问题,Mac下Graphviz之前一直装的是低版本的2.36.高版本的安装方法如下: 1.log in & download Xcode an Xcode Command Line ...
- mac下安装配置java jdk,maven,resin
mac jdk安装及环境变量配置 安装http://www.ifunmac.com/2013/04/mac-jdk-7/ jdk安装目录:/Library/Java/JavaVirtualMachin ...
- Mac下安装多版本python
1.安装Homebrew 将命令行复制至终端,进行安装. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/H ...
- java JDK在windows及mac下安装配置
windows下安装: JDK下载 地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151. ...
- Linux下安装和配置JDK与Tomcat(升级版)
在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...
- Mac下安装zshell
Mac 下安装zshell 什么是shell 大多数命令行用户接触最多的是Bash,因为Bash是各个版本操作系统(Linux&Mac)的默认shell. 查看当前使用的shell $ ech ...
- Mac下安装HBase及详解
Mac下安装HBase及详解 1. 千篇一律的HBase简介 HBase是Hadoop的数据库, 而Hive数据库的管理工具, HBase具有分布式, 可扩展及面向列存储的特点(基于谷歌BigTabl ...
- 在mac下安装jdk1.7(转)
转自:http://vela.diandian.com/post/2012-01-06/15379924 最近呢,想玩玩jdk1.7,不过mac平台下的jvm一直都是Apple自己改的,所有有些麻烦. ...
随机推荐
- imperva 网管替换
事情是这样的 某某银行的imperva DAM审计设备出现蜂鸣的响声.经检查电源没有问题,怀疑是硬盘坏了 . 然后我就去底层查看 运行命令 :impctl platform storage raid ...
- MySQL分布式集群之MyCAT(三)rule的分析【转】
首先写在最前面,MyCAT1.4的alpha版本已经发布了,这里面修复了不少的bug,也完善了一细节,之前两篇博客已经做了一些修改 ---------------------------------- ...
- mysql优化【转】
最近听讲了博森瑞老师的mysql优化公开课,这个是我整理的笔记. 现在说一下mysql的内存和I/O方面的两个特点. 一. mysql内存特点: 1. 也有全局内存和每个session的内存(每个s ...
- 数据库-python操作mysql(pymsql)
pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同 一:安装pymysql pip3 install pymysql 二:使用pytmysql # -*- codin ...
- linux 命令之cut
cut是一个选取命令,就是将一段数据经过分析,取出我们想要的.一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的. (1)其语法格式为:cut [-bn] [file] 或 cut ...
- jmert jdbc request支持执行多条sql语句并设置jdbc字符集
1.jdbc request支持执行多条sql语句 在JDBC Connection Configuration中的sql连接字串中添加如下内容 allowMultiQueries=true 如下图: ...
- 深入理解HashMap(及hash函数的真正巧妙之处)
原文地址:http://www.iteye.com/topic/539465 Hashmap是一种非常常用的.应用广泛的数据类型,最近研究到相关的内容,就正好复习一下.网上关于hashmap的文章很多 ...
- (四)SpringMvc文件上传
第一节:SpringMvc单文件上传 第二节:SpringMvc多文件上传
- 防止一个exe被打开多次
mutex有一个名字,如果这个exe已经打开了,createNew返回的就是false,程序就退出了. 这是个wpf application的例子 protected override void On ...
- SQL技巧两则:选择一个表的字段插入另一个表,根据其它表的字段更新本表内容
最近,在作django数据表迁移时用到的. 因为在django中,我把本来一个字符型字段,更改成了外键, 于是,哦喝~~~字符型字段相当于被删除了, 为了能导入这些字段的外键信息,于是出此下策. 其实 ...