跳到主要内容
Mole
概览 功能 口碑 定价 常见问题 博客
EnglishEN 简体中文中 繁體中文繁 日本語日 한국어한 FrançaisFR DeutschDE ItalianoIT EspañolES
立即购买购买 下载

    帮助、文档、更新日志和文章

    首页/博客

    从 Mac 卸掉 Java,别弄断工具链

    卸载应用发布于 2026年8月8日约 2 分钟

    「在 Mac 上卸载 Java」里藏着两个问题,答错就会把工具链弄坏,第一个是机器上到底有哪一份 Java,第二个是还有哪些软件默认它在。

    Oracle 自己的说明很短,最重要的一句不是步骤,而是一条警告:有一个目录不要动。

    不要从 /usr/bin 里删 Java

    Oracle 写得很直接,不要试图通过删除 /usr/bin 里的 Java 工具来卸载,该目录属于系统软件,下次 macOS 更新时 Apple 会把改动重置回去。

    这是最常见的翻车方式,敲 which java 会返回 /usr/bin 下的路径,看起来像答案,其实不是,在 macOS 上这些只是指向实际已安装运行环境的占位入口,删掉它们等于拆路标而不是拆楼,macOS 之后还会把它们装回来。

    先弄清要删的是哪一份 Java

    运行环境和开发工具包是不同的安装,卸载方式也不同。

    面向普通用户的 Oracle JRE(带浏览器插件和偏好设置面板的运行环境)在 Oracle 点名的三个位置:

    /Library/Internet Plug-Ins/JavaAppletPlugin.plugin
    /Library/PreferencePanes/JavaControlPanel.prefPane
    ~/Library/Application Support/Oracle/Java
    

    JDK 是另一套,装在 /Library/Java/JavaVirtualMachines/ 下,删除需要管理员权限,可以并排装多个,这很常见,往往是有意为之。

    系统目录里的命令行占位入口指向装在 Library Java Virtual Machines 下的 JDK;Oracle 运行环境的插件和偏好设置面板则是另一套独立安装。
    系统目录里的命令只是指针,不是运行环境本身。删 JDK 是删真实安装;只删指针只会弄断路标,macOS 还会把它们补回来。

    动手前先列出实际装了什么:

    /usr/libexec/java_home -V
    

    它会打印系统已知的每一个 JDK,含版本和路径,列表只有一项时选择很简单,若有四项,下一节就很重要。

    删错 JDK 会弄坏别的软件

    Java 很少为了自己而装,Android 工具链、Elasticsearch、Minecraft 启动器、JetBrains 系列 IDE、Apache 工具,以及部分企业 VPN 和打印客户端,都会自带或依赖 Java 虚拟机,有些内嵌了自己的副本,不受影响,有些解析系统提供的那一份,环境一变就停工。

    若 JDK 是用包管理器装的,就用同样方式卸,Homebrew 装的 temurin 用 brew uninstall 卸掉,手工抠文件会让包数据库仍认为它在。

    用官方支持的方式删 JDK

    若 JDK 是用 .pkg 装的,删除对象是 /Library/Java/JavaVirtualMachines/ 下带版本号的那一层目录,并需要 sudo,一次只删一个版本,确认常用工具仍正常,再删下一个。

    之后 /usr/libexec/java_home -V 不应再列出它,若曾在 shell 配置里手写 JAVA_HOME,它现在会指向空处,这个环境变量是「明明卸干净了工具链却挂了」的第二常见原因。

    关掉终端前先核对

    /usr/libexec/java_home -V
    java -version
    

    第一条显示还剩什么,第二条要么报出版本,要么提示没有已安装的运行环境,在你本意就是清空的机器上,后一种才是正确结果,不是报错。

    整块占用视图能帮上什么

    Java 的残留又小又散又无聊:缓存、偏好设置、一个插件、一块偏好设置面板,值得花时间的是那份清单,而终端已经能给你,若更想一次看到某个 JDK 或自带 JDK 的应用整块占用、并标出体积,Mole 会列出来,不必事先知道路径。

    删完之后要回头看的三处

    第一处是 shell 配置,~/.zshrc 和 ~/.zprofile 里手写的 JAVA_HOME 不会随 JDK 一起消失,它会继续指向一个已经不存在的路径,之后每个新 shell 都带着这个坏变量,删掉那一行,或者改成 export JAVA_HOME=$(/usr/libexec/java_home),让它跟着系统走。

    第二处是 IDE,JetBrains 系和 Android Studio 会在项目设置里记住具体的 JDK 路径,系统里换了版本它们不会自己跟着改,表现是项目突然编不过而命令行一切正常。

    第三处是包管理器装的那些,brew list | grep -i -E 'jdk|temurin|zulu|openjdk' 能看出哪些是 Homebrew 装的,它们要用 brew uninstall 卸,手工删掉目录会让 Homebrew 的数据库继续以为它还在。

    腾出空间、管理 App、维护系统、看清磁盘和实时状态,都在一个原生 Mac App 里,一次买断不用订阅。

    看看 Mole

    继续阅读

    • 卸载应用如何彻底卸载 Mac 应用,又不误删共享数据约 3 分钟
    • 卸载应用卸掉 Dropbox,本地文件还在约 2 分钟
    • 卸载应用重置或卸掉 VS Code,不必先丢掉整套配置约 2 分钟

    Mole · 鼴

    Mac 清理、软件与状态工具。

    v1.13.0 (153) · 更新日志

    支持

    帮助 功能文档 更新日志

    法律

    服务条款 隐私政策 退款政策

    资源

    博客 命令行工具 合作推广

    联系

    Twitter hi@mole.fit

    请认准官网 mole.fit · 避免下载到来路不明的版本

    命令行版继续免费开源。