linux 切换java版本

262 阅读2分钟

这里记录的是alternatives命令来切换版本,不用修改环境变量。 修改python版本也可以用这个。

1.查看系统上已安装的java

sudo update-alternatives --display java

结果:

开始只有个1.8的

java - auto mode
  link best version is /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
  link currently points to /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
  link java is /usr/bin/java
  slave java.1.gz is /usr/share/man/man1/java.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java - priority 1081
  slave java.1.gz: /usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz

又装了个17的

java - auto mode
  link best version is /usr/lib/jvm/java-17-openjdk-amd64/bin/java
  link currently points to /usr/lib/jvm/java-17-openjdk-amd64/bin/java
  link java is /usr/bin/java
  slave java.1.gz is /usr/share/man/man1/java.1.gz
/usr/lib/jvm/java-17-openjdk-amd64/bin/java - priority 1711
  slave java.1.gz: /usr/lib/jvm/java-17-openjdk-amd64/man/man1/java.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java - priority 1081
  slave java.1.gz: /usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz

输出结果分析:
link best version is # 最好的版本
link currently points to #当前版本
link java is #java 命令指向的位置
再后边就是已安装的java版本了

2.安装新的java

www.cnblogs.com/zrs123/p/14…

不太喜欢那种下载压缩包再解压啥的,下边这种命令行的比较省事。

先查看有哪些支持的jdk

apt-cache search jdk

我这里装个17的,JDK的默认下载目录是/usr/lib/jvm/下

sudo apt-get install openjdk-17-jdk

安装完17以后,系统默认的java版本就成这个了。

3.切换java版本

sudo update-alternatives --config java

如果只有一种可选,类似这种提示

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

如果多种,如下,然后看自己想切换哪种,输入对应的序号0,1,2就行了。

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-17-openjdk-amd64/bin/java      1711      auto mode
  1            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      1711      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

配置

这个是非必须的,比如上边我们安装完新的java17,系统自动就配置好了。如果是下载个压缩包java11,完事解压,我们想把java指定到11,那么就如下边配置一下。

sudo update-alternatives --install /usr/bin/java java /usr/java/jdk11/jre/bin/java 3

下边有讲install后边的参数意义,主要是指定下path,前边都是一样的。

install

alternatives --install <link> <name> <path> <priority>

install表示安装

link是符号链接

name则是标识符

path是执行文件的路径(不同的版本这里就指向对应版本所在的路径)

priority则表示优先级