在编译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安装全部完成。