令人惊讶的是(大约 4 个月前 OpenJDK 7 正式发布),Ubuntu 11.10 仍然默认使用 OpenJDK 6 而不是 7。我该如何解决这个问题?我更愿意完全删除 OpenJDK 6,让 OpenJDK 7 成为默认 jdk 和默认 jre。
我不想要官方的 Oracle tarball,我想要 deb repos - 标准的 Ubuntu 方式。
答案1
问题是该default-jre
软件包依赖于 OpenJDK 6,并且大多数其他软件包的依赖项定义为default-jre | openjdk-6-jre | sun-java6-jre
- 因此,直到 OpenJDK 7 获得官方支持并被用作默认版本,或者直到所有依赖 Java 的软件包更新其依赖项,您都必须保留 OpenJDK 6 并使用 将 OpenJDK 7 设置为默认值update-java-alternatives
。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,但请注意,这样做弊大于利。
答案2
为此,您的系统上必须安装两个版本的 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
答案3
OpenJDK 7 在 11.10 中的正常 ubuntu 存储库中,如果您查找 openjdk-7-jre 和 openjdk-7-jdk 并使用 apt-get/synaptic/software centre 安装它们,它们应该会替换 openjdk-6,如果没有,您可以先使用以下命令删除 openjdk-6-* 软件包apt-get purge openjdk-6-*
答案4
该仓库可以在这里找到: https://launchpad.net/~openjdk/+archive/ppa
或者:
sudo apt-add-repository ppa:openjdk/ppa
sudo apt-get update
sudo apt-get upgrade
假设你已经安装了 OpenJDK