透過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 中介工具來完成此操作:

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

為了在版本之間切換,您可以selection在本例中輸入 ie 0, 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,如果不是,您將不得不使用別名或軟連結進行調整。可能有更好、更乾淨的解決方案,但我不知道這些。

相關內容