更新步骤
查看当前java版本:
java --version
openjdk 11.0.14.1 2022-02-08
OpenJDK Runtime Environment (build 11.0.14.1+1-post-Debian-1)
OpenJDK 64-Bit Server VM (build 11.0.14.1+1-post-Debian-1, mixed mode, sharing)
到官网安装最新的jdk包(下载地址)
选择debian版本,下载下来执行命令
sudo dpkg -i 软件包名.deb
安装后执行命令(用于查看是否有java其他版本的替代选项)
update-alternatives --config java
有 1 个候选项可用于替换 java (提供 /usr/bin/java)。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 自动模式
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 手动模式
要维持当前值[*]请按<回车键>,或者键入选择的编号:
如果安装之后update-alternatives中没有出现替换项目
发现我们安装的jdk-18并没有出现在选项之中,那我们就需要手动添加。注意上面命令结果的第一行 /usr/bin/java ,是java的可执行文件的链接地址,后面需要用到 。当然,这个地址也可以由下面的命令得到:
whereis java
java: /usr/bin/java /etc/java /usr/share/java /usr/share/man/man1/java.1.gz
第一个就是默认地址
然后我们手动添加刚刚安装的jdk。注意到之前 update-alternatives --config java 命令的结果中的第二列 路径 ,我们到 /usr/lib/jvm 目录下
┌──~/Downloads
└─$ cd /usr/lib/jvm/
┌──/usr/lib/jvm/
└─$ ll
总用量 16K
lrwxrwxrwx 1 root root 25 7月 17 2019 default-java -> java-1.11.0-openjdk-amd64/
lrwxrwxrwx 1 root root 21 10月 20 2021 java-1.11.0-openjdk-amd64 -> java-11-openjdk-amd64/
drwxr-xr-x 9 root root 4.0K 4月 21 16:45 java-11-openjdk-amd64/
lrwxrwxrwx 1 root root 20 12月 12 23:23 java-1.8.0-openjdk-amd64 -> java-8-openjdk-amd64/
drwxr-xr-x 5 root root 4.0K 4月 4 15:29 java-8-openjdk-amd64/
drwxr-xr-x 9 10668 10668 4.0K 5月 6 17:14 jdk-18/
drwxr-xr-x 2 root root 4.0K 4月 21 16:45 openjdk-11/
注意到 jdk-18 在里面,执行命令
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-18/bin/java 1
参数解释:
- /usr/bin/java 注册最终地址,成功后将会把命令在这个固定的目的地址做真实命令的软链,以后管理就是管理这个软链;
- java 服务名,以后管理时以它为关联依据。
- /usr/lib/jvm/jdk-18/bin/java 被管理的命令绝对路径。
- 数字 1 即优先级,数字越大优先级越高。
然后
sudo update-alternatives --config java
#输入编码并回车
当然别忘了我们还需要更新 javac
同样的流程
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-18/bin/javac 1
sudo update-alternatives --config javac