ubuntu 编译android 源码切换不同的jdk

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            在make源码时出现您要求的是OpenJDk 而你当前版本是Java(TM)SE Runtime Environment,

纠结了,感觉网上各种搜,功夫不服有心人,赶紧记一下,分三个步骤;

步骤一:
异常信息:

You asked for an OpenJDK 7 build but your version is
java version "1.7.0_95" Java(TM) SE Runtime Environment (build 1.7.0_95-b15) Java  HotSpot(TM) 64-Bit
Server VM (build 24.95-b01, mixed mode).

java version "1.7.0_95" Java(TM) SE Runtime Environment (build 1.7.0_95-b15) Java  HotSpot(TM) 64-Bit
Server VM (build 24.95-b01, mixed mode).

Ubuntu16.04经默认没有openjdk7,所以要自己手动添加仓库:

//通过"add-apt-repository"脚本添加ppa到当前的库中并且会自动导入公钥;
sudo add-apt-repository ppa:openjdk-r/ppa
//执行update更新;
sudo apt-get update
//安装openjdk,jdk6和jdk8方式一样
sudo apt-get install opnjdk-7-jdk

打开/usr/lib/jvm/查看是否已经存在;
如果本地没有安装jdk6或jdk8,想安装,方法一样通过sudo apt-get install jdk6;

/usr/lib/jvm/java-7-oracle
/usr/lib/jvm/java-7-openjdk-amd64
/usr/lib/jvm/java-7-openjdk-amd64

-----------------------------------

步骤二:
安装成功后参考以下脚步在本地创建text文本配置对应的jdk,生成jdk_switch.sh

#!/bin/sh
echo ‘start eclipse’
case $1 in

jdk8) export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
;; 
jdk7) export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
;;
jdk6) export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64/
;;
jdko6) export JAVA_HOME=/usr/lib/jvm/java-6-oracle/
;;
esac
echo $JAVA_HOME
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

打开终端,切到你的要运行的项目,执行刚生成的.sh脚步,只要在末尾执行jdk版本号就ok了,可参考以下命令执行:

. /home/yuanjl/jdk_switch.sh jdk7

通过java-version查看当前版本号信息;

java -version

java version "1.7.0_95"
OpenJDK Runtime Environment (IcedTea 2.6.4) (7u95-2.6.4-3)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

OpenJDK Runtime Environment (IcedTea 2.6.4) (7u95-2.6.4-3)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

出现以上信息,表明已经配置成功了;

-----------------------------------

步骤三:

如果还是切换不了,可采用以下方式执行切换当前的jdk和运行环境:

sudo update-alternatives --config java

初始安装会出现一些信息,如果不是,则是第二次安装,继续向下看,手动选择你需要的jdk对应数字即可,
注:如果初始已经安装了,不想做第二次安装,可采用步骤二方式进行切换;

There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java/bin/java
无需配置。
------------------------------------------------------------
* 0            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      
自动模式
1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      
手动模式要维持当前值[*]
请按<回车键>,或者键入选择的编号:1
sudo update-alternatives --config javac
------------------------------------------------------------

选择你想要的jdk对应的编号就OK了,之后通java-version查看你当的版本信息了;

猜你喜欢

转载自blog.csdn.net/xiao_yuanjl/article/details/81704651