田海立@CSDN 2012-1-19
Android不同平台在編譯時間,用到的jdk的版本不同,比如:Froyo(2.2)及其以前版本需要jdk5.0;Gingerbread及其之後版本需要jdk6.0。如果在一個環境中要做不同平台項目,就需要安裝不同的jdk,切換項目時要反覆安裝jdk,費時費力。Update-alternatives為這種情況提供瞭解決方案。
本文只是針對《Ubuntu10.10下編譯Android2.2平台》的補充,是筆者在編譯Gingerbread時的解決方案。
1.3.2 中
1)官方下載JDK6,筆者下載的是jdk-6u30-linux-i586.bin
2)然後執行安裝,
haili@haili-desktop:~$cd ~
haili@haili-desktop:~$chmod +x jdk-6u30-linux-i586.bin
haili@haili-desktop:~$./jdk-6u30-linux-i586.bin
執行之後,產生 ~/jdk1.6.0_30
3)JDK版本切換
安裝了多個JDK的話,可以用update-alternatives設定版本,並進行切換選擇使用哪個。
首先為JDK1.6版產生可選配置選項:
haili@haili-desktop:~$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關聯的有哪些:
haili@haili-desktop:~$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版本
haili@haili-desktop:~$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了。