通过 apt 切换 Java 版本?

通过 apt 切换 Java 版本?

(如果我的格式不正确,请提前道歉,这是我的第一篇文章,请随时纠正我)。

通常,当我想要找出我正在使用的 Java 版本时,我会运行:

java -version

Java 版本“1.7.0_55”

如果我想更改 Java 版本(从 Java 7 到 Java 6),我只需将符号链接(/usr/bin/java)指向相应的 JRE Java 二进制文件即可。(顺便说一下,在本例中,我们不需要担心 javac 编译器或 java_ws)。

# readlink -f /usr/bin/java

/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java

# ln -s /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java /usr/bin/java

# java -version

Java 版本“1.6.0_31”

这很好,而且据我所知,它是有效的。

在 Solaris 中,有一个很好的方法可以通过 pkg mediator 工具来实现这一点:

myHost# pkg mediator -H java

java系统1.7系统

要将 Java 从 1.7 更改为 1.6:

pkg set-mediator -V 1.6 java

然后确认更改

myHost# pkg mediator -H java

java本地1.6系统

我想知道是否apt有等效方法?或者是否有更优雅的方法来切换 Java 版本?

编辑:这也可能适用于 python,所以我不是在寻找特定于 java 的答案

答案1

在已安装软件的多个版本之间切换的正确方法是使用:

sudo update-alternatives --config <package>

因此,对于 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-7-oracle/jre/bin/java          1053      auto mode
  1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode
  2            /usr/lib/jvm/java-7-oracle/jre/bin/java          1053      manual mode

为了在版本之间切换,您可以输入 ie selection0、1、2(在本例中),具体取决于您想要切换到的版本。

但是,对于 python,python2 和 python3 不是替代方案,因此您将找不到此选项,您需要为其创建别名。

因此,如果您希望 python 指的是 python 版本 2.xx,而 python3 指的是 python 版本 3.xx,则可以打开文件~/.bash_aliases并输入以下内容:

alias python=`/usr/bin/python`
alias python3=`/usr/bin/python3`

如果您之前没有创建过别名,那么此文件可能为空,这没关系。您甚至可能希望将别名反过来,即 python 引用 python3,python2 引用 python2,您可以根据需要调整别名。

如您所见,这取决于安装的版本是否是彼此的替代品 - 如果是替代品,则可以使用update-alternatives,如果不是,则必须使用别名或软链接进行调整。 可能有更好、更干净的解决方案,但我不知道。

相关内容