最近在配置WSL的环境,全部重置了一遍,装Java的时候,打算装一个Java8和一个Java17。本篇文章就是来处理不同Java安装以及Java版本的切换
Java8 安装
下载Java8 JDK包
以Java8为例子,我们要安装JDK版本,链接如下
1
| https://www.oracle.com/java/technologies/downloads/
|
下载jdk-8u401-linux-x64.tar.gz
。
建立Java8目录
我们建立Java的安装目录
1
| sudo mkdir -p /usr/lib/java8
|
解压Java包至Java8目录
我是WSL,所以可以直接从主机复制到目录里
1 2 3 4 5
| cd /usr/lib/java8 sudo tar xzvf jdk-8u401-linux-x64.tar_2.gz rm jdk-8u401-linux-x64.tar_2.gz cd jdk1.8.0_401 ls
|
添加环境变量
最末尾处添加
1 2 3 4
| JAVA_HOME=/usr/lib/java8/jdk1.8.0_401 PATH=$PATH:$HOME/bin:$JAVA_HOME/bin export JAVA_HOME export PATH
|
注册Java8
1 2 3 4
| sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/java8/jdk1.8.0_401/bin/java" 1 sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/java8/jdk1.8.0_401/bin/javac" 1 sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/java8/jdk1.8.0_401/bin/javaws" 1 sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/java8/jdk1.8.0_401/bin/javaws" 1
|
检测
1 2 3 4 5 6 7 8 9
| ┌──(root㉿Desktop-Trtyr)-[~] └─# java -version java version "1.8.0_401" Java(TM) SE Runtime Environment (build 1.8.0_401-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.401-b10, mixed mode)
┌──(root㉿Desktop-Trtyr)-[~] └─# javac -version javac 1.8.0_401
|
安装成功
Java17 安装
同样的方法,安装Java17,我是放在目录/usr/lib/java17/jdk-17.0.10
下了,不过这次,不需要添加环境变量了
1
| 下载java17 JDK包 -> 建立目录/usr/lib/java17 -> 压缩至目录 -> 注册
|
注册如下
1 2
| sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/java17/jdk-17.0.10/bin/java" 1 sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/java17/jdk-17.0.10/bin/javac" 1
|
切换版本
先看一下当前啥版本
1 2 3 4 5
| ┌──(root㉿Desktop-Trtyr)-[~] └─# java -version java version "1.8.0_401" Java(TM) SE Runtime Environment (build 1.8.0_401-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.401-b10, mixed mode)
|
查看所有的Java版本
1 2 3 4 5 6 7 8 9 10 11
| ┌──(root㉿Desktop-Trtyr)-[~] └─# update-alternatives --config java There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/java8/jdk1.8.0_401/bin/java 1 auto mode 1 /usr/lib/java17/jdk-17.0.10/bin/java 1 manual mode * 2 /usr/lib/java8/jdk1.8.0_401/bin/java 1 manual mode
Press <enter> to keep the current choice[*], or type selection number:
|
我们现在是用的2
,输入1
就可以切换到Java17。
如果切换后出现
1
| -bash: /usr/bin/java: Permission denied
|
使用命令
然后是切换javac
1 2 3 4 5 6 7 8 9 10 11
| ┌──(root㉿Desktop-Trtyr)-[~] └─# update-alternatives --config javac There are 2 choices for the alternative javac (providing /usr/bin/javac).
Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/java8/jdk1.8.0_401/bin/javac 1 auto mode 1 /usr/lib/java17/jdk-17.0.10/bin/javac 1 manual mode 2 /usr/lib/java8/jdk1.8.0_401/bin/javac 1 manual mode
Press <enter> to keep the current choice[*], or type selection number:
|
一样。