Linux上如何切换默认Java的版本

使用alternatives,就可以做到这一点了。alternatives 是​Linux 系统中的一个管理符号链接的工具,用于在系统中存在多个版本的同一程序时,方便地切换默认版本。在 Linux 中,许多程序(如 javagccpython)通常通过 ​符号链接(symlink)​​ 指向实际的二进制文件。alternatives 负责管理这些符号链接,确保系统调用的是正确的版本。


比如,查看java的符号链接:

[root]tmanager-yz# ls -l /usr/bin/java
lrwxrwxrwx 1 root 22 Sep 18  2023 /usr/bin/java -> /etc/alternatives/java*


/etc/alternatives/java 又是一个符号链接,指向实际的 Java 可执行文件:

[root]tmanager-yz# ls -l /etc/alternatives/java
lrwxrwxrwx 1 root 41 Apr 27 03:16 /etc/alternatives/java -> /usr/lib64/jvm/jre-1.8.0-openjdk/bin/java*


当机器中只有一个版本的java安装了的时候,会看到这样的信息。

[root]tmanager-yz# alternatives --config java       

There is only one alternative in link group java (providing /usr/bin/java): /usr/lib64/jvm/jre-17-openjdk/bin/java
Nothing to configure.


当需要切换默认java版本的时候,使用命令即可:

[root]tmanager-yz# alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                       Priority   Status
------------------------------------------------------------
* 0            /usr/lib64/jvm/jre-17-openjdk/bin/java      2705      auto mode
   1            /usr/lib64/jvm/jre-1.8.0-openjdk/bin/java   1805      manual mode
   2            /usr/lib64/jvm/jre-17-openjdk/bin/java      2705      manual mode

Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib64/jvm/jre-1.8.0-openjdk/bin/java to provide /usr/bin/java (java) in manual mode

[root]tmanager-yz# java -version                                                                                                                   /etc/alternatives
openjdk version "1.8.0_392"
OpenJDK Runtime Environment (IcedTea 3.29.0) (build 1.8.0_392-b08 suse-150000.3.85.1-x86_64)
OpenJDK 64-Bit Server VM (build 25.392-b08, mixed mode)


可以看到上面通过输入一个数字,就切换了默认的java的版本。


以上命令和输出,均在我自己的环境中运行通过。

posted on 2025-04-27 15:40  中道学友  阅读(240)  评论(0)    收藏  举报

导航

技术追求准确,态度积极向上