将JDK 7设置为默认值


83
 four@twenty:~$ file /etc/alternatives/java /etc/alternatives/javac
 /etc/alternatives/java:symbolic link to `/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'
 /etc/alternatives/javac:symbolic link to `/usr/lib/jvm/java-6-openjdk-amd64/bin/javac'

原谅我的笨拙,但是我使用Java 7将这些消息解释为运行时环境,但是编译器使用的是Java 6?

是这样吗?如果是这样,如何设置它以使用Java版本7?

Answers:


155

可以使用以下update alternatives命令在已安装的Java版本之间进行切换。

  • 要获取已安装的Java平台的列表,请在终端上运行以下命令:

    sudo update-alternatives --config java

    这将为您提供类似于以下内容的列表输出:

    There are 2 choices for the alternative java (providing /usr/bin/java).
       Selection    Path                                           Priority   Status
      ------------------------------------------------------------
      0            /usr/lib/jvm/java-6-oracle/jre/bin/java         1070      auto mode
      1            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1051      manual mode
    * 2            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1069      manual mode
    Press enter to keep the current choice[*], or type selection number: 

在这种情况下,Open JDK 6版本正在运行。要切换到Open JDK版本7,您将1在提示符下选择option 并Enter按键。

您现在将运行OpenJDK 7版本。无需其他更改即可切换Java版本。


好的谢谢。卸载jkd6会得到任何好处吗?
Wingsuit 2013年

@ user142712没问题。我相信卸载也会删除较旧的浏览器插件,这在安全性方面是有益的。
凯文·鲍文

1
我不会这么快就回答“没问题”。检查oracle.com/technetwork/java/javase/compatibility-417013.html上游-tracker.org/java/versions/jdk.html。这两个主要版本之间没有100%的兼容性,并且可能发生这种情况(不太可能,但仍然...),因此您的应用程序X无法与第七个版本一起正常运行。在您确定不会有任何问题之前,我强烈建议您都保留它们,以防万一您需要以前的版本。
rbaleksandar 2014年

只是要清楚。“没有问题”的评论是我表示欢迎的另一种方式,我从未宣称您的Java安装不会有问题。
凯文·鲍文

1
此答案提供的update-alternatives解决方案会切换JRE。请参见下面的适当的方法来切换整个JDK用一个命令(编译器和其他工具)
J.威尔

15

建议使用的投票最多的答案

更新替代

仅部分回答了问题。通过使用它,您很可能最终导致Java环境不一致。

如果您拥有JDK而不是JRE,这尤其重要,因为

[sudo] update-alternatives --config java

将改变版本的该java命令,即重新指向主JRE可执行文件。

javac和其他JDK工具仍将指向其他Java版本。要完全切换,您必须继续使用update-alternatives所有其他工具。

在Linux发行版中使用“ alternatives”系统(即Debian或它的衍生Ubuntu)中切换Java版本的正确容易得多的方法是使用 update-java-alternatives命令。

update-java-alternatives -l-将列出已安装的Java版本

[sudo] update-java-alternatives -s-将切换到请求的版本

资源


这个!非常感谢。我希望可以为您提供更多的互联网积分,但是我认为我没有这个权利。
Nenotlep

10

您可以运行sudo update-alternatives --config java,然后选择JDK 7(如果已安装)。


好的,欢呼,它说我安装了两个JKD7,其中一个列表状态为自动,另一列表状态为自动。有什么区别吗?
Wingsuit 2013年

这里有信息:linux.die.net/man/8/update-alternatives但我会选择自动。
Frederik Spang 2013年

“每个链接组在任何给定时间处于两种模式之一:自动或手动。当一个组处于自动模式时,替代系统将在安装和删除软件包时自动决定是否以及如何更新链接在手动模式下,替代系统不会更改链接;它将所有决定留给系统管理员。”
mpen 2013年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.