如何很好地管理不同目标的构建环境?

时间:2014-07-30 07:55:59

标签: java android build android-source openjdk

我正在尝试在ubuntu 14.04中构建不同版本的AOSP和android。但是,我需要在不同版本的OpenJDK和JAVA SE JDK之间切换。

我知道我可以使用update-alternative来处理不同的安装。但是,JAVA SE JDK没有出现在update-alternative中。这只是焦油球的内容。

有人建议更好地处理构建不同目标的不同工具吗?

3 个答案:

答案 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

希望它会有所帮助!!