Android L之后推荐使用JDK7编译程序,这是自然发展规律,就像是4年前编译Android 1.6需要使用JDK5一样。

多版本JDK是可以共存的,只需要使用update-alternatives工具就可以随时将它们切换。下面描述安装openjdk和oracle jdk(对不住了sun)以及切换版本的过程。

一、安装openjdk7

  1. $ sudo apt-get update
  2. $ sudo apt-get install openjdk-7-jdk

安装完成后找到其安装路径:

  1. $ dpkg -L openjdk-7-jdk
  2. /.
  3. /usr
  4. /usr/lib
  5. /usr/lib/jvm
  6. /usr/lib/jvm/java-7-openjdk-amd64
  7. $ ls /usr/lib/jvm/java-7-openjdk-amd64/
  8. ASSEMBLY_EXCEPTION  bin  docs  include  jre  lib  man  src.zip  THIRD_PARTY_README

二、切换java版本

  1. $ sudo update-alternatives --config java
  2. There are 2 choices for the alternative java (providing /usr/bin/java).
  3. Selection    Path                                            Priority   Status
  4. ------------------------------------------------------------
  5. * 0            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      auto mode
  6. 1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  7. 2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode
  8. Press enter to keep the current choice[*], or type selection number: 2
  9. update-alternatives: using /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java to provide /usr/bin/java (java) in manual mode.
  10. $ java -version
  11. java version "1.7.0_65"
  12. OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.12.04.1)

三、安装Oracle jdk

使用Android Studio做开发,启动IDE就提示:
OpenJDK shows intermittent performance and UI issues. We recommend using the Oracle JRE/JDK.
看来还是要安装Oracle的JDK了,因为ubuntu软件源中没有此JDK,所以不能像安装openjdk一样使用apt-get工具。
那么我们还是要去官网下载jdk7

按照以往的惯例,我将这些软件放在/opt目录下。将JDK解压到新建目录jdk下。
用update-alternatives工具来添加java可选配置项(这是一个dpkg的一个实用工具)。

  1. $ sudo update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.7.0_71/bin/java 700
  2. $ sudo update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.7.0_71/bin/javac 700
  3. $ sudo update-alternatives --install /usr/bin/jar jar /opt/jdk/jdk1.7.0_71/bin/jar 700

700是优先级数值,我这里随便使用了一个数。
查看一下我们的config:

  1. $ sudo update-alternatives --config java
  2. There are 3 choices for the alternative java (providing /usr/bin/java).
  3. Selection    Path                                            Priority   Status
  4. ------------------------------------------------------------
  5. 0            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      auto mode
  6. 1            /opt/jdk/jdk1.7.0_71/bin/java                    700       manual mode
  7. 2            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  8. * 3            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode
  9. Press enter to keep the current choice[*], or type selection number: 1
  10. update-alternatives: using /opt/jdk/jdk1.7.0_71/bin/java to provide /usr/bin/java (java) in manual mode

验证是否切换成功:

  1. $ java -version
  2. java version "1.7.0_71"
  3. Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
  4. Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

同样的,当我们需要切换到低版本时选择2或者安装oracle jdk6并将其纳入管理。这样就可以不用通过手动修改环境的方式来灵活切换JDK的版本了。

java 切换的更多相关文章

  1. java切换VPN让你像幽灵一样出现在全国各地

    在很多情况下,有些网络应用的需求会要求模拟人在不同地区访问网站和应用.因而切换IP也就应运而生了,然而IP作为一种稀缺资源不是随便可以获得的.因而会想到应用程序切换VPN来达到全国不同地区访问网络.因 ...

  2. selenium2+java切换窗口

    package exercises; import java.util.ArrayList; import java.util.List; import java.util.Set; import o ...

  3. java切换jdk版本

    目的:将jdk1.7切换为jdk1.6 1.原本安装了jdk1.7,环境变量也是配置的1.7相关路径,在cmd下输入[java -version]后,显示 [ C:\Users\Administrat ...

  4. Java切换JDK版本的方法及技巧

    由于项目的不同安排,之前项目开发时,使用的jdk版本为1.8,现临时接手一以前项目,需要更换jdk版本. 安装 不再赘述,去Oracle网站(https://www.oracle.com/techne ...

  5. ubuntu下配置java环境【转】

    转自:http://www.cnblogs.com/fnng/archive/2013/01/30/2883815.html 配置JDK环境 下载 登录oracle的网站去下载JDK7 http:// ...

  6. Java与Kotlin, 哪个是开发安卓应用的首选语言?

    Java是很多开发者创建安卓应用的首选语言.但它在 Android 界的领导地位正受到各种新语言的挑战,Kotlin就是其一.虽然Kotlin最近才开始受到热捧,但有为数不少的人相信 Kotlin 在 ...

  7. java高级-动态注入替换类Instrumentation

    介绍 利用java.lang.instrument(容器类) 做动态 Instrumentation(执行容器) 是 Java SE 5 的新特性. 使用 Instrumentation,开发者可以构 ...

  8. SUSE 图形化界面/How to enable/disable AS Java Safe Mode

    vncserver 不同的用户使用不同的图形化环境变量 比如sidadm用户要启动configtools.sh 需要sidadm来启动图形化 如何将java切换成safe mode 2125707 - ...

  9. CentOS7 安装java 环境 摘抄

    转http://www.diyhi.com/hostConfig.html 服务器环境配置 下面介绍全新安装的CentOS系统服务器安装配置商城软件服务环境的方法.演示主机操作系统为CentOS 7. ...

随机推荐

  1. 洛谷P1467 循环数 Runaround Numbers

    P1467 循环数 Runaround Numbers 89通过 233提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 循环数是 ...

  2. 理解python可变类型vs不可变类型,深拷贝vs浅拷贝

    核心提示: 可变类型 Vs 不可变类型 可变类型(mutable):列表,字典 不可变类型(unmutable):数字,字符串,元组 这里的可变不可变,是指内存中的那块内容(value)是否可以被改变 ...

  3. javaSE第七天

    第七天    36 1. 成员变量和局部变量的区别(理解)    36 (1)在类中的位置不同    36 (2)在内存中的位置不同    36 (3)生命周期不同    36 (4)初始化值不同   ...

  4. C\C++ 框架和库整理(转)

    [本文系外部转贴,原文地址:http://coolshell.info/c/c++/2014/12/13/c-open-project.htm]留作存档 下次造轮子前先看看现有的轮子吧 值得学习的C语 ...

  5. 打包新版本上传到AppStore时报错 ERROR ITMS-90034:

    今天打包新版本上传到AppStore时报错 ERROR ITMS-90034:"Missing or invalid signature.The bundle'com.xxx.xxx' at ...

  6. 模拟cpu调度

    先来先服务实现简单但是平均周转时间过长 短作业优先算法缩短了平均周转时间 #!/usr/bin/python #-*- coding: utf-8 -*- # # table # 0:进程号 1:到达 ...

  7. 一个完整的菜谱客户端(android源码)(有独立后台)

    该源码是自己写的,是一个完整的菜谱类客户端.功能简单比较简单,界面比较丑,自己乱拼接的,只为学习用.功能相对完整,数据来自独立后台,通过http协议获取,全部来自真实数据.代码里面有获取数据的相应ur ...

  8. windows下如何修改远程登录端口

    windows下如何修改远程登录端口 windows远程桌面默认端口为3389,修改 方法如下:在"开始>运行"中输入"regedit" 点击“确定”,打 ...

  9. sqoop导入数据到hive

    1.1hive-import参数 使用--hive-import就可以将数据导入到hive中,但是下面这个命令执行后会报错,报错信息如下: sqoop import --connect jdbc:my ...

  10. 认识php钩子-转白俊遥的博客

    认识php钩子-转载白俊遥的博客 我们先来回顾下原本的开发流程:产品汪搞出了一堆需求:当用户注册成功后需要发送短信.发送邮件等等:然后聪明机智勇敢的程序猿们就一扑而上:把这些需求转换成代码扔在 用户注 ...