下载
https://www.oracle.com/java/technologies/downloads/
先下载17的最新版本,我选了deb包

安装
第一次失败了
┌─[root@y-PC]─[/home/y/Downloads]
└──╼ #dpkg -i jdk-17_linux-x64_bin.deb
正在选中未选择的软件包 jdk-17。
(正在读取数据库 ... 系统当前共安装有 264454 个文件和目录。)
准备解压 jdk-17_linux-x64_bin.deb ...
正在解压 jdk-17 (17.0.6-ga) ...
dpkg: 依赖关系问题使得 jdk-17 的配置工作不能继续:
jdk-17 依赖于 libc6-i386;然而:
未安装软件包 libc6-i386。
jdk-17 依赖于 libc6-x32;然而:
未安装软件包 libc6-x32。
dpkg: 处理软件包 jdk-17 (--install)时出错:
依赖关系问题 - 仍未被配置
正在处理用于 dde-daemon (5.14.115-1) 的触发器 ...
在处理时有错误发生:
jdk-17
貌似缺了2个依赖,手工补上
┌─[✗]─[root@y-PC]─[/home/y/Downloads]
└──╼ #apt-get install libc6-i386 libc6-x32
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
deepin-clone deepin-pw-check deepin-recovery-tool fbterm imageworsener jfsutils libatkmm-1.6-1v5
libcairomm-1.0-1v5 libdumbnet1 libgtkmm-3.0-1v5 libheif1 liblqr-1-0 libmaxminddb0 libmspack0
libpangomm-1.4-1v5 libqtermwidget5-0 libsmi2ldbl libutempter0 libutf8proc2 libwireshark-data
libwireshark11 libwiretap8 libwscodecs2 libwsutil9 libx264-155 libx86-1 libxmlsec1 libxmlsec1-openssl
live-system-com partclone qtermwidget5-data squashfs-tools x11-apps x11-session-utils xbitmaps xinit
使用'apt autoremove'来卸载它(它们)。
下列【新】软件包将被安装:
libc6-i386 libc6-x32
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 3 个软件包未被升级。
有 1 个软件包没有被完全安装或卸载。
需要下载 5,914 kB 的归档。
解压缩后会消耗 28.4 MB 的额外空间。
获取:1 https://community-packages.deepin.com/deepin apricot/main amd64 libc6-i386 amd64 2.28.21-1+deepin-1 [2,876 kB]
获取:2 https://community-packages.deepin.com/deepin apricot/main amd64 libc6-x32 amd64 2.28.21-1+deepin-1 [3,037 kB]
已下载 5,914 kB,耗时 5秒 (1,122 kB/s)
正在选中未选择的软件包 libc6-i386。
(正在读取数据库 ... 系统当前共安装有 264931 个文件和目录。)
准备解压 .../libc6-i386_2.28.21-1+deepin-1_amd64.deb ...
正在解压 libc6-i386 (2.28.21-1+deepin-1) ...
正在选中未选择的软件包 libc6-x32。
准备解压 .../libc6-x32_2.28.21-1+deepin-1_amd64.deb ...
正在解压 libc6-x32 (2.28.21-1+deepin-1) ...
正在设置 libc6-x32 (2.28.21-1+deepin-1) ...
正在设置 libc6-i386 (2.28.21-1+deepin-1) ...
正在设置 jdk-17 (17.0.6-ga) ...
正在处理用于 libc-bin (2.28.21-1+deepin-1) 的触发器 ...
┌─[root@yhen1-PC]─[/home/yhen1/Downloads]
└──╼ #dpkg -i jdk-17_linux-x64_bin.deb
(正在读取数据库 ... 系统当前共安装有 265543 个文件和目录。)
准备解压 jdk-17_linux-x64_bin.deb ...
正在解压 jdk-17 (17.0.6-ga) 并覆盖 (17.0.6-ga) ...
正在设置 jdk-17 (17.0.6-ga) ...
正在处理用于 dde-daemon (5.14.115-1) 的触发器 ...
重新再安装一次
┌─[root@y-PC]─[/home/y/Downloads]
└──╼ #dpkg -i jdk-17_linux-x64_bin.deb
(正在读取数据库 ... 系统当前共安装有 265543 个文件和目录。)
准备解压 jdk-17_linux-x64_bin.deb ...
正在解压 jdk-17 (17.0.6-ga) 并覆盖 (17.0.6-ga) ...
正在设置 jdk-17 (17.0.6-ga) ...
正在处理用于 dde-daemon (5.14.115-1) 的触发器 ...
┌─[✗]─[root@y-PC]─[/home/y/Downloads]
└──╼ #java --version
openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-post-Uos-1deb10u2)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Uos-1deb10u2, mixed mode, sharing)
版本管理
┌─[root@y-PC]─[/usr/lib/jvm]
└──╼ #update-alternatives --display java
java - 自动模式
最佳链接版本为 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
链接目前指向 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
链接 java 指向 /usr/bin/java
从链接 java.1.gz 指向 /usr/share/man/man1/java.1.gz
/usr/lib/jvm/java-11-openjdk-amd64/bin/java - 优先级 1111
次要 java.1.gz:/usr/lib/jvm/java-11-openjdk-amd64/man/man1/java.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java - 优先级 1081
次要 java.1.gz:/usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz
当前是11版本,要改为17才行
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17/bin/java 1700
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-17/bin/javac 1700
sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk-17/bin/javadoc 1700
sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk-17/bin/javap 1700
#javah 没有,跳过
#sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk-17/bin/javah 1700
测试一下
┌─[root@y-PC]─[/usr/lib/jvm]
└──╼ #java --version
java 17.0.6 2023-01-17 LTS
Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing