mac切换jdk版本

使用工具命令“/usr/libexec/java_home”来定位JAVA_HOME

export JAVA_6_HOME=`/usr/libexec/java_home -v 1.6`

这个工具命令在以下目录下:

/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java_home

定义mac系统不同jdk版本的JAVA_HOME:

# 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`
  • 关于export:
    export设置只对当前的bash登录session有效,只是把这个变量载入到内存中,而并没有写入哪个文件。而注销或重启之后,系统加载的磁盘上的文件。我们可以写入文件一般的文件。之后source它,使他在文件中生效,放在不同的文件地方效果不一样:比如放在 /etc/profile 里面,这样登录后会执行这里面的命令,对所有用户都有效。比如放在 ~/.bahs_profile 和 ~/.bashrc(home目录下针对bash这个shell)下。
#默认JDK 6
export JAVA_HOME=$JAVA_6_HOME

利用alias设置切换jdk版本的别名

#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"

这样在console终端使用jdk6,jdk7,jdk8就可以动态的切换当前的jdk版本。

mac安装jdk1.6

  1. 系统默认安装的JRE路径
    /System/Library/Frameworks/JavaVM.framework/
    oracle和apple等安装的JDK包的路径
    /Library/Java/JavaVirtualMachines/

  2. JAVA_HOME目录
    /Library/Java/JavaVirtualMachines/1.6.0_38-b04-436.jdk/Contents/Home

  3. rt.jar、jsse.jar、tools.jar
    rt.jar和tools.jar已经在
    /Library/Java/JavaVIrtualMachines/1.6.0jdk/Contents/Classes/classes.jar中。
    jsse.jar也在Classes目录下。建议把classes.jar和jsse.jar建立软连接到/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/下,并且classes.jar的软链接命名为rt.jar。也建一个为tools.jar的软链接。这样就可以避免一些时候会发生找不到rt.jar、tools.jar的问题了,例如在使用混淆码的时候。

以下链接在最新Mac系统不适用了
http://support.apple.com/kb/DL1573
需要使用
https://support.apple.com/kb/DL1572?locale=zh_CN


关于idea下jdk的问题:
https://intellij-support.jetbrains.com/entries/23455956-Selecting-the-JDK-version-the-IDE-will-run-under
里面有这一段话:

Mac OS X
At the moment all our products require Apple JDK 1.6 to be installed in order to run on Mac. JDK 1.7 from Oracle is not officially supported yet and has known problems that stop us from using it by default. Oracle JDK 1.7.0_40 has added support for Retina and works much better than previous versions on Mac. You are welcome to give it a try in case you have any problems with Apple JDK.
To force running under JDK 1.7 edit /Applications/.app/Contents/Info.plist file, change JVMVersion from 1.6* to 1.7* :
<key>JVMVersion</key><string>1.7*</string>

idea目前似乎必须要使用安装apple jdk 1.6,使用1.7以上的会有问题,如果想强制使用1.7以上的版本,需要按照上面的操作执行。


jdk1.6关联源码(利用ln -s建立软链接,如需查看用法,使用man ln或者ln –help进行查看):

xiahanglideMacBook-Pro:~ xiahangli$ sudo -s
Password:
bash-3.2# cd /System/Library/Frameworks/JavaVM.framework/Home
bash-3.2# ln -s /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/docs.jar
bash-3.2# ln -s /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/src.jar

测试发现,软链接是存在了,但是源码依然无法识别
目前还不知道如何得到mac版jdk1.6源码的方法,如有同行知晓,还希望留言告诉下,thx~

现在只好配置jre1.6运行环境然后利用idea自带的反编译工具查看代码了~>_<~

mac切换jdk版本相关推荐

  1. Mac 切换 JDK 版本

    Mac 切换 JDK 版本 1 背景 近期为了体验一把 JDK17,在 idea 里面下载了 JDK17,如下图所示: 没想到下载这个会自动把我电脑的 JAVA 环境设置为 JDK17. $ java ...

  2. mac回退jdk版本_mac中不同jdk版本切换

    Mac OS X 和 Apple Java 6 生命周期终止 Apple 已发布公告,声明 Mac OS X 10.11 (El Capitan) 将为最后一个支持 Java 6 的 OS X 发行版 ...

  3. mac idea 切换jdk版本

    1 mac先安装好jdk1.7,jdk1.8 2 ZBMAC-C02ZP79VE:~ root$ vim ~/.bash_profile ZBMAC-C02ZP79VE:~ root$ cat ~/. ...

  4. mac回退jdk版本_Mac 的 jdk 版本配置

    关于修改 /usr/libexec/java_home 失败的问题,以前遇到过,后来没做笔记,忘记了..惭愧 在.bash_profile 中写如下语句 # Mac 默认 JDK 6 ( Mac 默认 ...

  5. ubuntu切换JDK版本

    因为JKD版本的影响,我的ecplise打不开,所以可以采用这种方法切换不同的JDK版本. 首先查看JDK版本: java -version 如: 一.安装jdk 我要切换成另外一个版本.如果没有但是 ...

  6. java切换jdk版本_切换JDK版本quick

    最近遇到一个小问题,同时做两个项目,jdk版本一个是5,一个是6,我也去网上找了找方法,但是感觉不是特别好用,最后自己通过一些环境变量设置的技巧和一些批处理命令来使得这件事情只需要双击,输入一个数字回 ...

  7. centos切换jdk版本

    CSDN新首页上线啦,邀请你来立即体验! 旧版 立即体验 博客 学院 下载 更多 论坛 问答 活动 码云 商城 ITeye 极客头条 写博客 发布Chat 登录注册 设置昵称 我的博客 消息(3) 设 ...

  8. mac 切换php,Mac切换php版本方法

    本文主要和大家分享Mac切换php版本方法,希望能帮助到大家. 1.使用brew安装多个php版本 先通过命令查看本地php版本php -v 随后使用brew安装多个php版本brew install ...

  9. java切换jdk版本_JDK版本切换(1.7与1.8)

    [前言] 在做不同的java项目时候,因项目需要很可能来回切换jdk版本: [探索之旅] 分别安装版本jdk1.7.0_45与jdk1.8.0_172,修改JAVA_HOME后,jdk还是切换不过来, ...

最新文章

  1. AI一分钟 | 程维成立滴滴股权投资公司;特斯拉董事会决定放弃私有化
  2. 计算机技术在本专业方面的论文,计算机技术专业论文
  3. BCH协议升级倒计时——超过68%的BCH全节点已支持升级
  4. eclipse+cdt+MinGW
  5. SAP ERP业务优化之非计划运输成本核算
  6. Leetcode69场双周赛-第三题5962. 连接两字母单词得到的最长回文串
  7. 电脑和服务器ip作用是什么意思,分配ip地址的服务器-服务器IP地址和客户端IP地址有什么区别? – 手机爱问...
  8. 12个很棒的Spring数据教程来启动您的数据项目
  9. css居中悬浮,CSS悬浮居中
  10. 将DataSet中的操作更新到Access数据库
  11. 18-数据持久化-Data Volume
  12. android圆盘布局,Android绘制圆盘控件
  13. java 不变类_Immutable-不变模式与不变类-一版
  14. VC知识库人物专访:搜狗CEO兼任搜狐CTO王小川
  15. 图解项目绩效考核指标及实例模板
  16. 【深度】关于跨境出口B2C,你只需要看这篇文章!从“产品、物流、流量”三个维度分析出口B2C电商
  17. 电商erp软件有哪些好处?
  18. 微信刷票python代码_微信刷票漏洞详解, Python脚本实现一秒破万!
  19. 第138天,我成为了CSDN博客专家,在搬砖的道路上继续努力
  20. could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#20007] 使用jbpm流程结束时出现异常

热门文章

  1. android里发送邮件mail的几种方式
  2. Opencv学习_3 (Opencv读取视频 视频进度控制 写视频)
  3. 淡淡的话1(转自小木虫)
  4. 苹果手机备份占内存吗 苹果手机备份到电脑怎么操作
  5. AJAX请求 $.ajaxSetup方法的使用
  6. 一文读懂 Bias(偏差)、Error(误差)、Variance(方差)
  7. java中float和int类型转换
  8. 小程序-平安夜(圣诞,告白,过节)程序员祝福代码
  9. plsql 导出用户对象和导出表的区别
  10. 【Linux操作系统】——配置安装系统环境