10.5以后的$JAVA_HOME没有被在.bash_profile中设置的话会被默认设置为 /usr/libexec/java_home。

如果一台mac里面安装了多个JDK, 可以通过/usr/libexec/java_home -V 来查看, 结果如下:

 $ /usr/libexec/java_home -V

 Matching Java Virtual Machines ():

     1.7.0_13, x86_64:"Java SE 7"/Library/Java/JavaVirtualMachines/jdk1..0_13.jdk/Contents/Home

     1.6.0_65-b14-, x86_64:"Java SE 6"/System/Library/Java/JavaVirtualMachines/1.6..jdk/Contents/Home

     1.6.0_65-b14-, i386:"Java SE 6"/System/Library/Java/JavaVirtualMachines/1.6..jdk/Contents/Home

 /Library/Java/JavaVirtualMachines/jdk1..0_13.jdk/Contents/Home

最后一行实际上反映的是系统默认使用的JAVA_HOME路径, 也就是执行/usr/libexec/java_home得到的路径。

如果想使用JDK1.6怎么办?

请在.bash_profile中添加

 JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

 export PATH=$PATH:$JAVA_HOME

 export JAVA_HOME

这样在bash下默认使用的就是JDK 1.6了

 $ java -version

 java version "1.6.0_65"

 Java(TM) SE Runtime Environment (build 1.6.0_65-b14--11M4609)

 Java HotSpot(TM) -Bit Server VM (build 20.65-b04-, mixed mode)

另外要注意的一个地方是, 有些App是直接使用:

 $ pwd
/System/Library/Frameworks/JavaVM.framework/Versions
$ ls -l
total
lrwxr-xr-x root wheel Feb : 1.4 -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.4. -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.5 -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.5. -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.6 -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.6. -> CurrentJDK
drwxr-xr-x root wheel Feb : A
lrwxr-xr-x root wheel Feb : Current -> A
lrwxr-xr-x root wheel Feb : CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6..jdk/Contents
$

CurrentJDK来定位JDK路径的。一般如果JDK1.6是后安装的就会看到CurrentJDK为1.6。

要改的话:

 $ ls -l
total
lrwxr-xr-x root wheel Feb : 1.4 -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.4. -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.5 -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.5. -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.6 -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.6. -> CurrentJDK
drwxr-xr-x root wheel Feb : A
lrwxr-xr-x root wheel Feb : Current -> A
lrwxr-xr-x root wheel Feb : CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6..jdk/Contents
$ sudo rm CurrentJDK
Password:
$ ln -s /Library/Java/
ln: ./: File exists
$ ls -l
total
lrwxr-xr-x root wheel Feb : 1.4 -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.4. -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.5 -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.5. -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.6 -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.6. -> CurrentJDK
drwxr-xr-x root wheel Feb : A
lrwxr-xr-x root wheel Feb : Current -> A
$ ln -s /Library/Java/JavaVirtualMachines/jdk1..0_13.jdk/Contents CurrentJDK
$ ls -l
total
lrwxr-xr-x root wheel Feb : 1.4 -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.4. -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.5 -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.5. -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.6 -> CurrentJDK
lrwxr-xr-x root wheel Feb : 1.6. -> CurrentJDK
drwxr-xr-x root wheel Feb : A
lrwxr-xr-x root wheel Feb : Current -> A
lrwxr-xr-x root wheel Feb : CurrentJDK -> /Library/Java/JavaVirtualMachines/jdk1..0_13.jdk/Contents
$

【OSX】多个JDK共存时选择要使用的JDK版本的更多相关文章

  1. python2.x和python3.x版本共存时选择启动的版本

    在windows环境下装好python2.7和python3.6之后,我之前一直是用了很笨的办法去区分版本 那就是把各个版本python安装目录下的python.exe分别改为python2.exe和 ...

  2. 在eclipse中新建Dynamic web project时选择2.5和3.0的区别(里面涉及servlet和tomcat的问题)

    1.是指servlet的版本,是2.5的还是3.0的 servlet3.0以后支持异步 2.dynamic web module和对应的TOMCAT 版本 http://blog.sina.com.c ...

  3. NSIS:卸载时选择组件

    原文 NSIS:卸载时选择组件 有时候,我们想要在卸载时也可以选择组件,进行定制性的卸载,那么,以下文字将简略讨论这个问题: 题外:我们想要卸载时选择组件,当然是在安装时要有组件选择页面的前提下,也就 ...

  4. SQL面试题:有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列

    .请教一个面试中遇到的SQL语句的查询问题 表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列. ------------------- ...

  5. 用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。

    数据库中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列. 方法一: select (case when a>b then a el ...

  6. 解决多版本共存时,python/pip等命令失效

    问题呈现: Windows环境下,多版本Python解释器共存时,由于未配置环境变量或者反复卸载重装解释器等原因,CMD交互下输入Python或者pip等命令时失效 解决方式: 1)配置各个解释器的环 ...

  7. 【OSX】解决编译AOSP时需要10.5/10.6 SDK下载

    有人遇到的是需要10.6的sdk. 公司网快下载了xcode, 把里面的10.5sdk和10.6sdk拿出来, 一共才一百多兆…… 下载链接: http://pan.baidu.com/s/1gdxG ...

  8. Fedora Server 21下OpenJdk和Oracle Jdk共存

    最新文章:Virson's Blog 参考文章:博客园-三维蚂蚁 Linux公社 1.首先需要下载对应平台的Jdk:Oracle 官网 2.使用yum或rpm命令安装Jdk: yum install ...

  9. 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器

    一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...

随机推荐

  1. 498. Diagonal Traverse对角线z型traverse

    [抄题]: Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in dia ...

  2. Linux之 Ngnix

    前言: WEB框架 django 大而全, 功能特别多 form表单 , ORM, 中间件 笨重,臃肿 600/s flask 轻量级的,小而精, 它使用的都是第三方模块进行拼接起来的 4988/s ...

  3. Python爬虫项目--爬取链家热门城市新房

    本次实战是利用爬虫爬取链家的新房(声明: 内容仅用于学习交流, 请勿用作商业用途) 环境 win8, python 3.7, pycharm 正文 1. 目标网站分析 通过分析, 找出相关url, 确 ...

  4. vs [失败]未能找到文件

    用文本文件打开csproj 文件.将里面的不需要文件删除; 或者在工程里面先将其移出工程.然后再删除;

  5. 深入理解JVM(四)JVM性能监控与故障处理工具

    4.2 JVM命令行工具 1.jps(JVM Process Status Tool):JVM进程查看工具,命令行进入到jdk的bin目录下,使用命令:jps -l/-q/-v/-m 2.jstat( ...

  6. mysql8.0 linux 安装

    1.下载 mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz 2.解压 tar -xvf mysql-8.0.15-linux-glibc2.12-x86_64.ta ...

  7. java的poi 读取exc 文件

    package lizikj.bigwheel.shop.util.excel; import java.io.File; import java.io.FileInputStream; import ...

  8. js后加版本号

    页面引入两个js文件 <script charset="utf-8" src="mjs/randomimage.js?v=01291"></s ...

  9. Hadoop 系列文章(三) 配置部署启动YARN及在YARN上运行MapReduce程序

    这篇文章里我们将用配置 YARN,在 YARN 上运行 MapReduce. 1.修改 yarn-env.sh 环境变量里的 JAVA_HOME 路径 [bamboo@hadoop-senior ha ...

  10. Nginx 教程

    开源版:http://nginx.org 商业版:http://nginx.com 阿里Tengine OpenResty开源版.商业版 视频教程:哔哩哔哩 菜鸟教程:nginx安装 1.初识 Nig ...