【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 注意在执行字 ...
随机推荐
- FortiGate 路由
1.静态路由 防火墙外网口wan1 ip地址为202.1.1.2,对端ISP路由器G1/0口地址为202.1.1.1. 菜单: 路由--静态--静态路由,点击 "创建新的",按如下 ...
- Django formset
一 什么是formset Form组件或ModelForm用于做一个表单验证而formset是用于做多个表单的验证组件,用于做批量操作 二 formset的使用方法 1 设置form信息 class ...
- CentOS 6.7快速搭建lamp环境
安装前要关闭防火墙,防止外网不能访问,这一点很重要,要不然外网访问不了: ①关闭防火墙:service iptables stop ②永久关闭防火墙:chkconfig iptables off ③查 ...
- echo 转义字符的使用
man echo 查看 echo 的使用文档 -n 不尾随换行符 -e 启用解释反斜杠的转义功能 -E 禁用解释反斜杠的转义功能(默认) --help 显示此帮助信息并退出 --version 显示版 ...
- Axure RP Extension for Chrome 插件安装
描述 我的chmod浏览器上不去谷歌商店,我用的是蓝灯,登上商店后搜索Axure RP Extension for Chrome,下载安装,完成后进入这个插件的详细信息: 使用 打开用axure生成的 ...
- SpringMCV跨域
不在同服务器访问就会产生跨域(用其他软件编写HTML测试) 后台Controller package edu.nf.ch02.controller; import org.springframewor ...
- flask 学习
标题 操作 09-2-sqlalchemy数据库查询 (2019-01-18 23:30) 编辑 09-1-数据库扩展包flask-sqlalchemy (2019-01-18 17:53) 编辑 0 ...
- Beta阶段Scrum 冲刺博客合集
Beta阶段博客链接集合 第一篇Scrum冲刺博客 第二篇Scrum冲刺博客-Day1 第三篇Scrum冲刺博客-Day2 第四篇Scrum冲刺博客-Day3 第五篇Scrum冲刺博客-Day4 第六 ...
- opencv源码编写规则
OPENCV作为一种开源的计算机视觉库,我们有必要去了解这个库的一些编码格式及文件结构. 1.文档命名规则 必须将所有功能放入一个或多个.cpp和.hpp文件到OpenCV的相应模块中,或者如果贡献的 ...
- 用 Docker 构建、运行、发布来一个 Spring Boot 应用
本文演示了如何用 Docker 构建.运行.发布来一个 Spring Boot 应用. Docker 简介 Docker 是一个 Linux 容器管理工具包,具备“社交”方面,允许用户发布容器的 im ...