最推荐用update-alternatives管理linux多版本jdk,先安装openjdk 8并注册java/javac,再交互式切换并同步设置java_home确保构建工具一致。

降级 JDK 不是卸载再重装那么简单,关键在于让系统“认出”旧版本,并把它设为默认。不同操作系统处理方式不同,但核心逻辑一致:保留多个版本、配置环境变量、用系统机制切换默认项。
Linux(如 Kali/Ubuntu):用 update-alternatives 管理多版本
Debian 系家族(包括 Kali)靠 update-alternatives 统一调度 java、javac 等命令的指向。JDK 11 和 JDK 8 可以共存,只需注册并切换优先级。
- 先安装 OpenJDK 8:
sudo apt install openjdk-8-jdk(Kali/Ubuntu 源里有,无需手动下载) - 查看当前所有 Java 候选:
sudo update-alternatives --list java(若报错,说明还没注册新版本) - 手动注册 JDK 8 的 java 和 javac:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 1 - 交互式切换:
sudo update-alternatives --config java,按提示选择 JDK 8 对应编号 - 设置 JAVA_HOME(推荐写入
/etc/environment或用户 shell 配置):JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
Windows:靠环境变量 + Path 顺序控制
Windows 不自带版本管理工具,靠 JAVA_HOME 和 Path 中 %JAVA_HOME%\bin 的位置 决定哪个 JDK 生效。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 下载并安装旧版 JDK(如 jdk-8u333),记下完整路径,例如:
C:\Program Files\Java\jdk1.8.0_333 - 新建系统变量:
JAVA_HOME8→ 值为上述路径;再新建或修改JAVA_HOME→ 值设为%JAVA_HOME8% - 编辑
Path变量,把%JAVA_HOME%\bin移到最前面(拖拽或手动调整顺序) - 重启终端(CMD/PowerShell),运行
java -version和where java确认路径是否指向 JDK 8
macOS:删链接、换目录、改配置
macOS 把 JDK 装在 /Library/Java/JavaVirtualMachines/ 下,系统通过 /usr/bin/java 这个符号链接调用实际版本。
- 列出已装 JDK:
/usr/libexec/java_home -V(会显示所有已识别的版本及路径) - 临时切换(当前终端有效):
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) - 永久生效:把上行命令加到
~/.zshrc(macOS Catalina 及以后默认)或~/.bash_profile - 如果 JDK 8 未被识别,需先从 Oracle 或 Adoptium 下载安装包安装,再执行上面步骤
通用注意事项
无论哪种系统,降级后别忘了检查关联环节:
- IDE 需单独设置:IntelliJ、Eclipse、VS Code 的 Java 插件不会自动跟随系统 JDK,要在项目设置或 SDK 配置里手动指定路径
-
构建工具要同步:Maven 的
maven.compiler.source/target、Gradle 的sourceCompatibility必须匹配 JDK 版本,否则编译报错 - 避免直接删旧版:Kali 等系统部分工具依赖 JDK 11,卸载它可能导致 apt 更新异常或图形界面故障
-
验证命令用对:JDK 8 不支持
java --version(双横线),必须用java -version
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










