用update-alternatives实现不同Android平台编译时的JDK选择


Android不同平台在编译时,用到的jdk的版本不同,比如:Froyo(2.2)及其以前版本需要jdk5.0;Gingerbread及其之后版本需要jdk6.0。如果在一个环境中要做不同平台项目,就需要安装不同的jdk,切换项目时要反复安装jdk,费时费力。Update-alternatives为这种情况提供了解决方案。

本文只是针对《Ubuntu 10.10下编译Android 2.2平台》(见  )的补充,是笔者在编译Gingerbread时的解决方案。

1.3.2 中

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

2)然后执行安装,

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

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

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

执行之后,生成 ~/jdk1.6.0_30

3)JDK版本切换

安装了多个JDK的话,可以用update-alternatives设置版本,并进行切换选择使用哪个。

首先为JDK1.6版生成可选配置选项:

www.bkjia.com@bkjia:~$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.bkjia.com@bkjia:~$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.bkjia.com@bkjia:~$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了。

相关内容