其实关于jdk,你就关心三方面:
1、32位还是64位
2、1.6还是1.7版本
3、环境变量设在/etc/profile里面就好了
编译android4.0,提示错误信息:
Checking build tools versions...
************************************************************
You are attempting to build with the incorrect version
of java.
Your version is: java version "1.6.0_27".
The correct version is: Java SE 1.6.
Please follow the machine setup instructions at
http://source.android.com/source/download.html
************************************************************
build/core/main.mk:131: *** stop. Stop.
查看系统本身的java版本:
java -version
打印信息如下:
java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.3) (6b27-1.12.3-0ubuntu1~10.04)
OpenJDK Server VM (build 20.0-b12, mixed mode)
如上,需升级jdk,详细步骤如下描述:
从http://www.oracle.com/technetwork/java/javase/downloads/index.html下载的jdk-7u17-linux-i586.tar.gz(这里是32位的),特别要注意自己的主机是多少位的
以下这一段是32位的安装步骤:
=======================================================================================================================
sudo chmod -R 777 /usr/lib/
cd /usr/lib
mkdir jdk
将下载的jdk-7u17-linux-i586.tar.gz解压到到jdk目录
将jdk1.7.0_17目录中的文件全部解锁
sudo chmod -R 777 /usr/lib/jdk/jdk1.7.0_17/
gedit ~/.bashrc
文件末尾添加如下描述信息:
export JAVA_HOME=/usr/lib/jdk/jdk1.7.0_17
export JRE_HOME=/usr/lib/jdk/jdk1.7.0_17/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
同步一下:
. ~/.bashrc
update-alternatives --install /usr/bin/java java /usr/lib/jdk/jdk1.7.0_17/bin/java 300
update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/jdk1.7.0_17/bin/javac 300
确认一下路径:
printenv JAVA_HOME
java -version
打印:
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) Server VM (build 23.7-b01, mixed mode)
=======================================================================================================================
若打印如下信息,是jdk对应位数(64/32)和实际操作系统的位数不符,需重新下载
bash: /usr/lib/jdk/jdk1.7.0_17/bin/java: cannot execute binary file
结果发现jdk1.7版本用不了,那只能下载最新的1.6的版本
下载并拷贝jdk-6u43-linux-i586.bin到/usr/lib/jdk
必须改权限,不然以下命令无法执行
chmod 777 jdk-6u43-linux-i586.bin
安装
./jdk-6u43-linux-i586.bin
将jdk1.6.0_43目录中的文件全部解锁
sudo chmod -R 777 /usr/lib/jdk/jdk1.6.0_45/
安装完成后调整环境变量
gedit ~/.bashrc
文件末尾添加如下描述信息:
export JAVA_HOME=/usr/lib/jdk/jdk1.6.0_45
export JRE_HOME=/usr/lib/jdk/jdk1.6.0_45/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
同步一下:
. ~/.bashrc
update-alternatives --install /usr/bin/java java /usr/lib/jdk/jdk1.6.0_43/bin/java 300
以下打印忽略:
update-alternatives: error: 无法写进 /var/lib/dpkg/alternatives/java.dpkg-tmp:Permission denied
update-alternatives --install /usr/bin/javac javac /usr/lib/jdk/jdk1.6.0_43/bin/javac 300
以下打印忽略:
update-alternatives: error: 无法写进 /var/lib/dpkg/alternatives/javac.dpkg-tmp:Permission denied
前两天听一个报告,android2.2之前的使用jdk1.5,android2.3之后的使用jdk1.6,并非最新版本就合适,找到真正对应的版本才能正确编译。
我一台64位服务器安装jdk6使用的是jdk-6u37-linux-x64.bin
~/.bashrc是用户变量修改的地方
编译服务器应该系统环境变量,应该是root权限登陆修改/etc/profile,修改完成后,客户端重新登陆验证,各客户端需要. /etc/profile方式同步一下