在编译android源码的过程中,遇到一个搭建java环境的问题:我下载并安装了java的jdk,然后在管理员账户下已经可以通过java -version命令查看到java jdk安装成功了,提示如下:
java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode)
然而,由于编译android源码需要root权限,因此当我使用命令“sudo su”切换到root账户下,并再次执行“java -version”时,却显示仍然为openjdk。也就是说在root权限下,java jdk并没有配置成功。后来尝试了一下,发现如果仅仅配置了/etc/profile,此时你使用的普通用户是成功配置了java jdk的,而如果要root账户同样配置成功,还必须修改/etc/environment文件。
下面详述我配置的全过程:
硬件配置:win7下的虚拟机vmware9.0
安装Ubuntu12.04 64位linux系统
软件配置:android4.2.1源码 包名: jdk-6u30-linux-x64.bin
第一步:在windows中下载jdk-6u30-linux-x64.bin,在Ubuntu中开个共享文件夹,使之可以网络存取,然后在windows中将jdk-6u30-linux-x64.bin 拷贝到虚拟机,并复制到/usr/lib/jvm/目录下,如果该文件没有可执行权限,请使用"sudo chmod 777 jdk-6u30-linux-x64.bin"命令赋予它可执行的权限。
第二步:通过“sudo su”命令切换到root用户,然后在/usr/lib/jvm/目录下执行“./jdk-6u30-linux-x64.bin”命令,开始安装jdk。
第三步:安装完毕后开始配置/etc/profile文件,进入 /etc 这一目录下,执行“vi profile”, 按i进入插入编辑模式,然后在profile文件最后添加以下内容:
export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_30
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/bin
(当然如果你的jdk安装目录跟我不同,这里环境变量的配置也要作相应的更改。)
添加完毕后,按esc退出编辑模式,并输入“:wq”保存退出profile文件。随后使用“source ./profile”命令使环境变量的配置生效,如果不执行此命令,重启虚拟机也可以。
第四步:配置etc/environment文件。
原来的environment文件为“PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bi
n:/usr/games" ”,在PATH最后面加上“:/usr/lib/jvm/jdk1.6.0_30/bin”我们的java jdk安装路径。(!注意:如果添加完毕后重启机器,你的机器无法登陆,输入密码后总是回到登陆界面,那说明环境变量配置有问题。可以尝试在重启机器的时候按住 ctrl-alt-F6,进入纯终端,然后打开environment文件,在PATH行下输入“export PATH” ,然后“:wq”保存退出environment文件。)最后同样使用“source ./environment”使之生效。
至此java环境变量配置完成,但是由于Ubuntu往往自带了openjdk(可以用update-alternatives --config java命令看一下是否有openjdk,如果没有,则可忽略第五步),而且它是默认使用的,因此我们需要切换为我们安装的jdk。方法如下:
第五步:挨个儿执行下列命令:
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_30/bin/java 300
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_30/bin/javac 300
注意请将其中紫色部分更改为自己的jdk安装路径。
最后,执行“update-alternatives --config java”,在命令行跳出
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 auto mode
1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 manual mode
* 2 /usr/lib/jvm/jdk1.6.0_30/bin/java 300 manual mode
Press enter to keep the current choice[*], or type selection number:
时,键入2,按回车。即将我们的java jdk选为默认使用版本。
至此,java jdk安装全部完成。