令人惊讶的是(因为OpenJDK 7大约4个月前发布到普遍可用性)Ubuntu 11.10默认使用OpenJDK 6而不是7.我该如何最好地解决这个问题?我宁愿完全删除OpenJDK 6,让OpenJDK 7成为default-jdk和default-jre.
我不想要正式的Oracle tarball,我想要deb repos – 标准的Ubuntu方式.
解决方法:
问题是default-jre包依赖于OpenJDK 6,而大多数其他包的依赖关系定义为default-jre. openjdk-6-jre | sun-java6-jre – 所以直到OpenJDK 7得到官方支持并将用作默认版本,或者直到所有依赖Java的包更新它们的依赖关系,你必须保持OpenJDK 6并将OpenJDK 7设置为默认使用更新Java的替代品. 64位系统示例:
$update-java-alternatives -l
java-1.6.0-openjdk 1061 /usr/lib/jvm/java-1.6.0-openjdk
java-1.7.0-openjdk-amd64 1051 /usr/lib/jvm/java-1.7.0-openjdk-amd64
$sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
在32位系统上,目录名称会有所不同,您可以使用-l开关找到正确的名称.第二个命令可能会吐出很多错误;要么使用–jre switch,要么只是忽略错误 – 脚本会改变它所能做的事情而忽略其余部分.
从理论上讲,可以编辑default-jre包以依赖OpenJDK 7,但要注意这可能会带来更多弊大于利.