我正在尝试在ubuntu 14.04中构建不同版本的AOSP和android。但是,我需要在不同版本的OpenJDK和JAVA SE JDK之间切换。
我知道我可以使用update-alternative
来处理不同的安装。但是,JAVA SE JDK没有出现在update-alternative
中。这只是焦油球的内容。
有人建议更好地处理构建不同目标的不同工具吗?
答案 0 :(得分:2)
默认情况下,当您构建AOSP时,它将使用您的JAVA_HOME,当它们陷入1.6并且其他所有人都使用1.7时,这真的很令人沮丧。
AOSP将在构建之前查找环境变量ANDROID_JAVA_HOME,因此您可以在构建之前设置它并将其指向其他位置。这似乎不适用于所有版本的Android,它绝对不适用于我的Marshmallow构建,但如果它确实有效,它可能对您来说更方便。
去手动从Oracle获取所需的java版本,然后找到一种方便的方法来调用export JAVA_HOME=/path/to/java/
。我总是使用1.6,因为我还没有构建高手,所以我只是把它放到我的.bashrc中,但你可以把它放在构建脚本中。
答案 1 :(得分:1)
您可以手动将JDK安装添加到update-alternative
。
如何实现这一目标:
download您需要的JDK,例如jdk-6u45-linux-x64.bin
提取它;例如,chmod +x jdk-6u45-linux-x64.bin && ./jdk-6u45-linux-x64.bin
将它移到你想要的地方;我个人更喜欢/opt
,所以sudo mv jdk1.6.0_45 /opt
您可以跳过此步骤,但我建议您使用符号链接sudo ln -fs /opt/jdk1.6.0_45 /opt/jdk1.6
手动添加此版本sudo update-alternatives --install /usr/bin/java java /opt/jdk1.6/bin/java 1
注意:我在那里使用符号链接。
然后您可以随时使用
更改当前的JDK sudo update-alternatives --config java
。
然后您可以检查系统中使用的当前Java版本。
>java - version java version "1.6.0_45" Java(TM) SE Runtime Environment (build 1.6.0_45-b06) Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
您可以在update-alternatives
的{{3}}中找到更多信息。
答案 2 :(得分:0)
我有同样的问题要在update-alternative
之内切换JDK版本。我已经有了JDK 7,我想切换到KDK 6.我已经下载了JDK 6作为.bin并安装了。但它没有在更新替代中显示。最后我找到了适合我的解决方案。
我安装了update-java-0.5b,它将打开GUI,这对于在JDK版本之间切换很有用。
wget http://webupd8.googlecode.com/files/update-java-0.5b
chmod +x update-java-0.5b
sudo ./update-java-0.5b
希望它会有所帮助!!