在Java中如何卸载旧版本JDK_Java环境清理流程解析
发布时间 - 2026-01-30 00:00:00 点击率:次需先查清所有已安装JDK版本及路径:Windows查注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK,macOS执行ls /Library/Java/JavaVirtualMachines/,Linux用dpkg -l | grep jdk或rpm -qa | grep java;卸载后须手动清理残留文件、环境变量、IDE SDK配置及构建工具相关设置,并新开终端验证which java、java -version、mvn -v等结果是否符合预期。
确认当前系统中安装的JDK版本和路径
卸载前必须先搞清哪些JDK在运行、哪些只是残留。Windows 上执行 where java 和 java -version 只能告诉你当前 PATH 用的是哪个,但不会列出所有已安装 JDK。更可靠的方式是查注册表(Windows)或文件系统(macOS/Linux):
- Windows:打开
regedit,导航到HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JDK,这里会列出各版本的JavaHome路径 - macOS:JDK 通常装在
/Library/Java/JavaVirtualMachines/,直接ls /Library/Java/JavaVirtualMachines/就能看到所有包名(如jdk-17.0.1.jdk) - Linux(deb/rpm):用
dpkg -l | grep jdk或rpm -qa | grep java;若手动解压安装,则需回忆或搜索jdk*目录
Windows下彻底卸载JDK(不止是控制面板)
通过「控制面板 → 程序和功能」卸载 JDK,只删掉了注册表项和部分程序文件,JAVA_HOME 环境变量、PATH 中的引用、以及 C:\Program Files\Java\ 下残留的目录往往还在。
- 手动删除对应 JDK 文件夹(如
C:\Program Files\Java\jdk-11.0.18) - 检查并清理环境变量:
JAVA_HOME是否指向已删路径?PATH是否还含%JAVA_HOME%\bin或绝对路径? - 搜索整个系统是否有孤立的
tools.jar、rt.jar(JDK 8 及以前)或modules文件——这些常被 IDE 或旧构建脚本硬编码引用,删不干净会导致编译失败
macOS/Linux 手动清理 JDK 的关键路径
macOS 的 JDK 安装包(.dmg)卸载后不会自动清理,Linux 的 tar.gz 解压安装更是零卸载逻辑。重点不是“删文件”,而是确保没有进程或配置还在依赖它:
- macOS:删除
/Library/Java/JavaVirtualMachines/jdk-*.jdk后,运行/usr/libexec/java_home -V验证是否已从可用列表消失 - Linux:若用
tar -xzf解压到/opt/jdk-17,直接rm -rf /opt/jdk-17即可,但务必检查/etc/profile、~/.bashrc、~/.zshrc中是否还有export JAVA_HOME=... - IDE(IntelliJ/Eclipse)里配置的 SDK 不会随系统卸载自动清除,需进
Project St手动删掉已失效条目,否则新建项目可能默认选错 JDK
ructure → SDKs
验证卸载是否真正生效
很多人删完就以为完事了,结果跑 mvn compile 或启动 Spring Boot 时仍报 Unsupported class file major version ——说明构建工具或 IDE 还在用旧 JDK 编译。
- 终端新开一个窗口(避免继承旧 shell 环境),执行:
which java、java -version、$JAVA_HOME/bin/java -version - 检查 Maven:
mvn -v输出的 Java 版本是否与预期一致;其实际使用 JDK 由MAVEN_OPTS或pom.xml中maven-compiler-plugin的source/target决定,和系统java命令未必一致 - Gradle 项目看
gradle.properties中的org.gradle.java.home,这个配置优先级高于系统环境变量
最易被忽略的是:某些 CI/CD 脚本、Dockerfile、或容器化环境里的 JDK 是独立打包的,本地卸载再干净也影响不了它们。清理前先确认你真正要解决的问题发生在哪一层——是开发机命令行?IDE 编辑器?还是 Jenkins 构建日志?
# linux
# java
# docker
# windows
# 编码
# 工具
# mac
# eclipse
# 注册表
# macos
# 环境变量
# spring
# spring boot
# maven
# xml
# 继承
# class
# ide
# jenkins
# gradle
# 还在
# 的是
# 新开
# 就能
# 很多人
# 告诉你
# 你真
# 编辑器
# 必须先
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
如何快速生成可下载的建站源码工具?
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
浅析上传头像示例及其注意事项
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
Laravel如何使用Service Container和依赖注入?(代码示例)
Python函数文档自动校验_规范解析【教程】
Laravel如何实现API速率限制?(Rate Limiting教程)
长沙企业网站制作哪家好,长沙水业集团官方网站?
用yum安装MySQLdb模块的步骤方法
香港服务器部署网站为何提示未备案?
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
网站优化排名时,需要考虑哪些问题呢?
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
LinuxShell函数封装方法_脚本复用设计思路【教程】
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
清除minerd进程的简单方法
北京企业网站设计制作公司,北京铁路集团官方网站?
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
如何在服务器上配置二级域名建站?
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
公司门户网站制作流程,华为官网怎么做?
php打包exe后无法访问网络共享_共享权限设置方法【教程】
如何在香港服务器上快速搭建免备案网站?
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
如何用低价快速搭建高质量网站?
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
linux写shell需要注意的问题(必看)
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
,网页ppt怎么弄成自己的ppt?
canvas 画布在主流浏览器中的尺寸限制详细介绍
JS碰撞运动实现方法详解
如何在腾讯云服务器快速搭建个人网站?
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
实现点击下箭头变上箭头来回切换的两种方法【推荐】
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
Laravel如何实现多对多模型关联?(Eloquent教程)
动图在线制作网站有哪些,滑动动图图集怎么做?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
如何在不使用负向后查找的情况下匹配特定条件前的换行符
Laravel如何处理CORS跨域请求?(配置示例)
中山网站推广排名,中山信息港登录入口?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
高端网站建设与定制开发一站式解决方案 中企动力
深圳网站制作平台,深圳市做网站好的公司有哪些?


