问题描述
令人惊讶的是(因为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-dependent软件包更新它们的依赖项,你才会必须保持OpenJDK 6并使用update-java-alternatives
将OpenJDK 7设置为默认值。 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
切换,要么只是忽略错误 – 脚本会改变它的内容而忽略其余部分。
理论上可以编辑default-jre
包依赖于OpenJDK 7,但要注意这可能会带来更多的弊大于利。
次佳解决思路
为此,您必须在系统上安装两个版本的jdk。您可以使用apt-get下载两者。
在那之后尝试,
$ sudo update-alternatives --config java
并选择您要使用的jdk。
对于某些应用程序,Openjdk有时是不利的。
您还应该尝试oracle-java或sun-java。
以下链接对此非常有用:
http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html
第三种解决思路
OpenJDK 7在11.10中是正常的ubuntu repos,如果你查找openjdk-7-jre和openjdk-7-jdk并使用apt-get /synaptic /software center安装它们,它们应该替换openjdk-6,如果它不能,你可以首先使用apt-get purge openjdk-6-*
删除openjdk-6- *软件包
第四种思路
回购可以在这里找到:https://launchpad.net/~openjdk/+archive/ppa
要么:
sudo apt-add-repository ppa:openjdk/ppa
sudo apt-get update
sudo apt-get upgrade
假设你安装了OpenJDK