Android L之后推荐使用JDK7编译程序,这是自然发展规律,就像是4年前编译Android 1.6需要使用JDK5一样。
多版本JDK是可以共存的,只需要使用update-alternatives工具就可以随时将它们切换。下面描述安装openjdk和Oracle jdk(对不住了sun)以及切换版本的过程。
一、安装openjdk7
- $sudoapt-getupdate
- $sudoapt-getinstallopenjdk-7-jdk
- $dpkg-Lopenjdk-7-jdk
- /.
- /usr
- /usr/lib
- /usr/lib/jvm
- /usr/lib/jvm/java-7-openjdk-amd64
- $ls/usr/lib/jvm/java-7-openjdk-amd64/
- ASSEMBLY_EXCEPTIONbindocsincludejrelibmansrc.zipTHIRD_PARTY_README
二、切换java版本
- $sudoupdate-alternatives--configjava
- Thereare2choicesforthealternativejava(providing/usr/bin/java).
- SelectionPathPriorityStatus
- ------------------------------------------------------------
- *0/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java1061automode
- 1/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java1061manualmode
- 2/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java1051manualmode
- Pressentertokeepthecurrentchoice[*],ortypeselectionnumber:2
- update-alternatives:using/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/javatoprovide/usr/bin/java(java)inmanualmode.
- $java-version
- javaversion"1.7.0_65"
- OpenJDKRuntimeEnvironment(IcedTea2.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的一个实用工具)。
- $sudoupdate-alternatives--install/usr/bin/javajava/opt/jdk/jdk1.7.0_71/bin/java700
- $sudoupdate-alternatives--install/usr/bin/javacjavac/opt/jdk/jdk1.7.0_71/bin/javac700
- $sudoupdate-alternatives--install/usr/bin/jarjar/opt/jdk/jdk1.7.0_71/bin/jar700
查看一下我们的config:
- $sudoupdate-alternatives--configjava
- Thereare3choicesforthealternativejava(providing/usr/bin/java).
- SelectionPathPriorityStatus
- ------------------------------------------------------------
- 0/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java1061automode
- 1/opt/jdk/jdk1.7.0_71/bin/java700manualmode
- 2/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java1061manualmode
- *3/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java1051manualmode
- Pressentertokeepthecurrentchoice[*],ortypeselectionnumber:1
- update-alternatives:using/opt/jdk/jdk1.7.0_71/bin/javatoprovide/usr/bin/java(java)inmanualmode
验证是否切换成功:
- $java-version
- javaversion"1.7.0_71"
- Java(TM)SERuntimeEnvironment(build1.7.0_71-b14)
- JavaHotSpot(TM)64-BitServerVM(build24.71-b01,mixedmode)