Linux上如何切换默认Java的版本
使用alternatives,就可以做到这一点了。alternatives 是Linux 系统中的一个管理符号链接的工具,用于在系统中存在多个版本的同一程序时,方便地切换默认版本。在 Linux 中,许多程序(如 java、gcc、python)通常通过 符号链接(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 modePress <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的版本。
以上命令和输出,均在我自己的环境中运行通过。
浙公网安备 33010602011771号