Andriod源码编译时的JDK版本问题解决
最近编译Andriod源码时,因为涉及到对应不同的Android版本,
我需要在源码中切换2.x.x版本和3.0.x、4.0.x版本。
问题由此产生:
2.2.x版本需要使用jdk5.x.x
而2.3.x、3.0.x、4.0.x版本则需要使用jdk6.x.x来编译;
尽管google在http://source.android.com/source/initializing.html中写明了:
Java6:forGingerbreadandnewer
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" $ sudo apt-get update $ sudo apt-get install sun-java6-jdk
Java5:forFroyoandolder
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse" $ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse" $ sudo apt-get update $ sudo apt-get install sun-java5-jdk
但是觉得觉得讲的还不够清楚。
搜索了一些资料后,发现:
1.Java5和Java6可以按照上述方式安装,并且安装完成后可以并存
2.不同Java版本之间可以通过修改JAVA_HOME来切换,而PATH变量只需要设置为:
exportPATH=$JAVA_HOME/bin:$PATH
3.JAVA_HOME可以不用通过修改环境变量的方式切换,而是利用update-alternatives工具来管理。
具体做法:
1.按照前述方法,安装JAVA5,JAVA6
2.执行
sudo update-alternatives --config java
出现以下内容:
有 2 个选项可用于替换项 java (提供 /usr/bin/java)。 选择 路径 优先级 状态 ------------------------------------------------------------ 0 /usr/lib/jvm/java-6-sun/jre/bin/java 63 自动模式 * 1 /usr/lib/jvm/java-1.5.0-sun/jre/bin/java 53 手动模式 2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 手动模式 要维持当前值[*]请按回车键,或者键入选择的编号:
按照提示选择想要的版本即可。
3.同时还要执行
sudo update-alternatives --config javac
执行相同的选择
最新发现还需要执行
sudo update-alternatives --config javadoc
原因是:某些形式的编译,比如生成目标是SDK时,会调用javadoc编译,此时如果javadoc的Version不对,则会产生找不到某些方法的异常...导致编译失败退出...
4.执行exportPATH=$JAVA_HOME/bin:$PATH
5.开始编译make-j3,哈哈...
相关推荐
lonesomer 2020-09-17
liyansring 2020-08-15
liym 2020-07-20
katanaFlower 2020-07-05
JM 2020-06-21
zhangpan 2020-06-11
greent00 2020-06-10
changecan 2020-11-19
sunnnyduan 2020-10-16
houdaiye 2020-09-23
XPZ0 2020-09-22
changecan 2020-09-22
jackadmi 2020-09-11
yuan00yu 2020-08-24
yserver 2020-08-15
liai 2020-08-09
山有木兮卿有意 2020-08-03
85206633 2020-07-28