歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 用update-alternatives實現不同Android平台編譯時的JDK選擇

用update-alternatives實現不同Android平台編譯時的JDK選擇

日期:2017/3/1 10:38:33   编辑:Linux編程

Android不同平台在編譯時,用到的jdk的版本不同,比如:Froyo(2.2)及其以前版本需要jdk5.0;Gingerbread及其之後版本需要jdk6.0。如果在一個環境中要做不同平台項目,就需要安裝不同的jdk,切換項目時要反復安裝jdk,費時費力。Update-alternatives為這種情況提供了解決方案。

本文只是針對《Ubuntu 10.10下編譯Android 2.2平台》(見 http://www.linuxidc.com/Linux/2011-09/43348.htm )的補充,是筆者在編譯Gingerbread時的解決方案。

1.3.2 中

1)官方下載JDK6,筆者下載的是jdk-6u30-linux-i586.bin

2)然後執行安裝,

www.linuxidc.com@linuxidc:~$cd ~

www.linuxidc.com@linuxidc:~$chmod +x jdk-6u30-linux-i586.bin

www.linuxidc.com@linuxidc:~$./jdk-6u30-linux-i586.bin

執行之後,生成 ~/jdk1.6.0_30

3)JDK版本切換

安裝了多個JDK的話,可以用update-alternatives設置版本,並進行切換選擇使用哪個。

首先為JDK1.6版生成可選配置選項:

www.linuxidc.com@linuxidc:~$sudoupdate-alternatives--install /usr/bin/jdk jdk ~/jdk1.6.0_30 254

說明:/usr/bin/jdk是符號鏈接,它指向/etc/alternatives/jdk(由第2個參數給出);/etc/alternatives/jdk是符號鏈接,它指向~/jdk1.6.0_30。~/jdk1.6.0_30(/home/haili/jdk1.6.0_30)是實際目的鏈接,254是優先級(任意整數,在自動模式時,數字大的優先級較高,被選為默認配置選項)。

執行上面的操作之後,就可以用update-alternatives來切換jdk了。

用--display可以選擇用查看與/etc/alternatices/jdk關聯的有哪些:

www.linuxidc.com@linuxidc:~$update-alternatives --displayjdk

jdk – manual mode

link currently points to /home/haili/jdk1.5.0_22

/home/haili/jdk1.5.0_22– priority 255

/home/haili/jdk1.6.0_30– priority 254

用--config可以切換不同的jdk版本

www.linuxidc.com@linuxidc:~$sudoupdate-alternatives--config jdk

[sudo] passwordfor haili:

There are 2choices for the alternative jdk (providing /usr/bin/jdk).

Selection Path Priority Status

--------------------------------------------------------------------------

0 /home/haili/jdk1.5.0_22 255 auto mode

1 /home/haili/jdk1.5.0_22 255 manual mode

* 2 /home/haili/jdk1.6.0_30 254 manual mode

Press enter tokeep the current choice[*], or type selection number:

可以選擇不同jdk。

在環境設置中只要設置到/usr/bin/jdk,就能鏈接到你用update-alternatives選擇的那個jdk了。

Copyright © Linux教程網 All Rights Reserved