【OSX】多个JDK共存时选择要使用的JDK版本
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版本的更多相关文章
- python2.x和python3.x版本共存时选择启动的版本
在windows环境下装好python2.7和python3.6之后,我之前一直是用了很笨的办法去区分版本 那就是把各个版本python安装目录下的python.exe分别改为python2.exe和 ...
- 在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 ...
- NSIS:卸载时选择组件
原文 NSIS:卸载时选择组件 有时候,我们想要在卸载时也可以选择组件,进行定制性的卸载,那么,以下文字将简略讨论这个问题: 题外:我们想要卸载时选择组件,当然是在安装时要有组件选择页面的前提下,也就 ...
- SQL面试题:有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列
.请教一个面试中遇到的SQL语句的查询问题 表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列. ------------------- ...
- 用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 ...
- 解决多版本共存时,python/pip等命令失效
问题呈现: Windows环境下,多版本Python解释器共存时,由于未配置环境变量或者反复卸载重装解释器等原因,CMD交互下输入Python或者pip等命令时失效 解决方式: 1)配置各个解释器的环 ...
- 【OSX】解决编译AOSP时需要10.5/10.6 SDK下载
有人遇到的是需要10.6的sdk. 公司网快下载了xcode, 把里面的10.5sdk和10.6sdk拿出来, 一共才一百多兆…… 下载链接: http://pan.baidu.com/s/1gdxG ...
- Fedora Server 21下OpenJdk和Oracle Jdk共存
最新文章:Virson's Blog 参考文章:博客园-三维蚂蚁 Linux公社 1.首先需要下载对应平台的Jdk:Oracle 官网 2.使用yum或rpm命令安装Jdk: yum install ...
- 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器
一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...
随机推荐
- PHP请求ws出现的问题
在SOAPUI中的请求如下: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/&qu ...
- cmp指令
cmp是比较指令,cmp的功能相当于减法指令,只是不保存结果.cmp指令执行后,将对标志寄存器产生影响.其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果. cmp指令格式: cmp 操作对象 ...
- java 遇到的问题
1.list.sort(new Comparator<String>() { @override public int compare(String o1, String o2) { re ...
- 图片利用 new Image()预加载原理 和懒加载的实现原理
二:预加载和懒加载的区别 预加载与懒加载,我们经常经常用到,这些技术不仅仅限于图片加载,我们今天讨论的是图片加载: 图片预加载:顾名思义,图片预加载就是在网页全部加载之前,提前加载图片.当用户需要查看 ...
- 杨其菊201771010134《面向对象程序设计Java》第二周学习总结
第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...
- tomcat的缺少tcnative-1.dll的解决
tomcat启动出现如下问题: The APR based Apache Tomcat Native library which allows optimal performance in produ ...
- Linux学习笔记:Tomcat安装与使用
Tomcat是一个Servlet容器服务器,用java实现的. 目录结构 Tomcat的安装也很简单,从官网下载安装包.解压后的tomcat目录 apache-tomcat-7.0.92 下的子目录为 ...
- Html5学习笔记:图片上传
图片上传是业务需求中常见的功能,最基础的是单图片的上传.比较复杂的多图片上传,都是基于单图片上传. Form表单上传 h5的原生表单上传图片,代码如下: <!DOCTYPE html> & ...
- 【轻松前端之旅】CSS选择器中的空格与尖括号有何区别?
CSS选择器中的空格与尖括号有何区别? 例子1: .a .b { margin: 0; } 空格隔开a和b,选择所有后代元素. 例子2: .a>.b { margin: 0; } 尖括号隔开a和 ...
- easyui中的option设置selected没有效果
在mvc中,使用了easyUI框架,然后我点击添加新消息的时候弹窗一个新窗口,添加信息.却发现我的select一直无法设置默认状态,jq选中,还是直接在添加一条请选择的option都没办法选中,网络上 ...