mac下同时安装jdk1.7和jdk1.8
1.安装jdk1.7时会弹出报错,说版本不兼容。

解决方案
双击安装包,使安装包挂在到机器上,即在Finder里可以看到一个名字为JDK 7 Update 60的Device。
在terminal下输入以下命令,命令中的路径可能不同
$ pkgutil --expand /Volumes/JDK\ 7\ Update\ 60/JDK\ 7\ Update\ 60.pkg /tmp/jdk.unpkg
$ cd /tmp/jdk.unpkg
$ vim Distribution
- 将打开的文件内容替换,找到
pm_install_check方法,修改为以下就行。 
function pm_install_check() {
  return true;
}
- 重新打包
 
  $ pkgutil --flatten /tmp/jdk.unpkg /tmp/jdk.pkg 
- 开始重新安装包(新的包)
 
   $ open /tmp/jdk.pkg  
- 1
 
注意:原始挂在到机器上的安装包,一定得先关了才可以。
2)
配置
安装完成之后,调出terminal命令行工具,检验安装是否成功:
$ java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
那如何进行版本切换呢?先看当前生效的JDK路径:
$ which java
/usr/bin/java
$ cd /usr/bin
$ ls -l
……
lrwxr-xr-x 1 root wheel 74 Oct 21 18:10 java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
lrwxr-xr-x 1 root wheel 75 Oct 21 18:10 javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
lrwxr-xr-x 1 root wheel 77 Oct 21 18:10 javadoc -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javadoc
……

可以发现这个java只是一个当前系统生效的JDK的一个软连接,Java安装的是实际位置位于
/Library/Java/JavaVirtualMachines
使用如下的命令可以指定当前系统使用哪个版本的JDK:
$ /usr/libexec/java_home -v 版本号
编辑bash_profile文件,添加如下内容(注意:JDK9不是 -v 1.9):
$ vi ~/.bash_profile
export JAVA_7_HOME="$(/usr/libexec/java_home -v 1.7)"
export JAVA_8_HOME="$(/usr/libexec/java_home -v 1.8)"
export JAVA_9_HOME="$(/usr/libexec/java_home -v 9)"
alias jdk7='export JAVA_HOME=$JAVA_7_HOME'
alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk9='export JAVA_HOME=$JAVA_9_HOME'
# 默认使用JDK8
export JAVA_HOME=$JAVA_8_HOME
$ source ~/.bash_profile
版本切换
如上配置之后,默认使用JDK1.8,然后使用jdk7、jdk8或jdk9来切换当前系统的JDK版本:
$ java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
# 切换到JDK1.8,使用如下命令
$ jdk8
$ java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
# 切换到JDK9
$ jdk9
$ java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)
其他
linux环境下JDK配置备份如下:
$ sudo vi ~/.bashrc
export JAVA_HOME=/my/java/home/jdk180
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
$ source ~/.bashrc
windows环境下JDK配置如下:
JAVA_HOME=/my/java/home/jdk180
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib
PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%PATH%
参考:http://adolphor.com/blog/2016/12/24/install-multiple-jdk-to-macos.html
  https://blog.csdn.net/zw235345721/article/details/78702254
mac下同时安装jdk1.7和jdk1.8的更多相关文章
- Mac 下 docker安装
		
http://www.th7.cn/system/mac/201405/56653.shtml Mac 下 docker安装 以及 处理错误Cannot connect to the Docker d ...
 - Mac下Jekyll安装
		
之前一直用Wordpress,虽然功能强大,各种插件各种bug,如果想弄个主题,折腾得要命.最近改用jekyll+gitHub免费空间.记录一下. 我用的是Mac,所以只讲述Mac下如何安装,Wind ...
 - Mac下Tomcat安装与Intellij IDEA配置Tomcat
		
Mac下Tomcat安装与Intellij IDEA配置Tomcat 一 安装 1 下载地址:https://tomcat.apache.org/download-90.cgi 2 将压缩包解压后移至 ...
 - Mac下Maven安装与配置
		
Mac下Maven安装与配置 下载maven http://maven.apache.org/download.cgi main->download菜单下的Files 下载后解压在Documen ...
 - Mac下删除安装的pkg
		
Mac下的安装和删除都比windows更加简单清晰,这点在dmg方式下非常明显,但很多时候我们会使用pkg来进行安装,这样的安装想删除就有点麻烦了. 比如,我安装了Golang这个pkg用于g ...
 - Mac下新安装的MySQL无法登陆root用户解决方法
		
一 设置MySQL命令行搜索路径 0.苹果->系统偏好设置->最下边点mysql 在弹出页面中 启动mysql服务 1.打开终端,输入: sudo vi ~/.bash_profile ...
 - Mac下webpack安装
		
最近开始接触构建工具webpack,公司电脑是 windows,而我自己的呢是mac.本来以为在自己电脑安装很简单,但是出了点问题,所以写出来分享下. 这里用npm的方式安装,首先你要安装node.j ...
 - JMeter在Mac下的安装
		
其实不论操作系统是Windows.Unix(如Mac OS).Linux(如Ubuntu)等,JMeter所需要的基础环境配置都是类似的,本文介绍JMeter for MAC的安装与环境配置. JMe ...
 - Mac下手动安装SafariDriver extension
		
环境:Mac OS X Yosemite 10.10.4下, Safari 8 Step 1:第一次运行SafariDriver时,先找到WebDriver extension的安装路径,比如/Use ...
 - Mac下手动安装Chromedriver.exe
		
Mac OS X Yosemite 10.10.4下,ChromeDriver运行异常,需要手动安装chromedriver.exe Step 1: 打开https://sites.google.co ...
 
随机推荐
- Hive0.13.1介绍及安装部署
			
一.简介 hive由Facebook开源用于解决海量结构化日志的数据统计.hive是基于Hadoop的一个数据仓库工具,是基于Hadoop之上的,文件是存储在HDFS上的,底层运行的是MR程序.hiv ...
 - mono for android 第三课--页面布局(转)
			
对于C#程序员来说布局不是什么难事,可是对于我这个新手在mono for android 中布局还是有点小纠结的,不会没关系.慢慢学习.好吧我们开始简单的布局.在之前我们拖拽的控件都是自动的去布局,也 ...
 - 使用NHibernate(4)--拦截器和事件
			
如果想在一个事务的开始.执行中.完成后等过程中执行一些自己的逻辑(比如记录日志.查看sql),拦截器(Interceptors)和事件(Event)就可以发挥作用了.两者所能完成的功能差不多. 1,拦 ...
 - SpringSecurity自定义用户登录
			
根据上一节的配置,默认在服务开启的时候会被要求自动的进行表单登陆.用到的用户名只能是一个固定的用户名user,它的密码是每次启动的时候服务器自动生成的.最常见的场景是我们的用户是从数据库中获取的. 1 ...
 - ubuntu手动安装PhantomJS
			
1.切换到主目录:cd ~2.下载安装包:https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-Linux-x86_64.ta ...
 - nuxt.js引入客户端脚本和第三方库出现window/document/ navigator未定义问题
			
官方文档中已经给出解决方案: 实际操作也比较简单,比如我之前在项目中引入的wangeditor,这个插件里包含了navigator内容 解决:现在nuxt.config.js的webpack扩展配置中 ...
 - Gradle中的SourceSet理解
			
对于maven项目来说,目录结构是固定的,也就是像这样: src/main/ src/main/java/ src/main/resources/ src/test/ src/test/java/ s ...
 - window.location.href详解
			
在写web程序的时候,我们经常遇到跳转页面的问题,我们经常使用Response.Redirect做页面跳转,如果客户要在跳转的时候使用提示,这个就不灵光了,如: Response.Write(&quo ...
 - Redis命令参考【EXPIRE】
			
EXPIRE EXPIRE key seconds 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除. 在 Redis 中,带有生存时间的 key 被称为『易失的』 ...
 - 微信WeUI入门2
			
引入需要的样式文件 最重要的css文件为 weui.min.css 基本的框架如下: <!DOCTYPE html> <html lang="zh-CN"> ...