
(如果我的格式不對,請提前道歉,這是我的第一篇文章,請隨時糾正我)。
通常,當我想了解我正在使用的 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
,如果不是,您將不得不使用別名或軟連結進行調整。可能有更好、更乾淨的解決方案,但我不知道這些。