1. 程式人生 > >Ubuntu下多版本JDK切換

Ubuntu下多版本JDK切換

origin: http://blog.csdn.net/lincyang/article/details/42024565

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的版本了。