跳到主要內容
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 工具來解除安裝 Java。那個目錄屬於系統軟體的一部分,任何更動都會在下次 macOS 更新時被 Apple 還原。

    這是最常見的搞砸方式。輸入 which java 會回傳 /usr/bin 底下的路徑,看起來像答案,其實不是。在 macOS 上那些是指向實際已安裝 runtime 的 stub。刪掉它們只是拿掉路標,不是拆掉建築,而且 macOS 之後還會再放回去。

    先搞清楚要移除的是哪一種 Java

    Runtime 與開發套件是不同的安裝,移除方式也不同。

    Oracle JRE(帶瀏覽器外掛與偏好設定面板的消費者 runtime)存在 Oracle 點名的三處:

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

    JDK 是另一回事,安裝在 /Library/Java/JavaVirtualMachines/ 底下,移除需要管理員權限。你可以同時裝好幾套,這很正常,而且常常是刻意的。

    系統目錄裡的命令列 stub 指向安裝在 Library Java Virtual Machines 底下的 JDK,而 Oracle runtime 外掛與偏好設定面板是另一套安裝。
    系統目錄裡的指令是指標,不是 runtime。移除 JDK 才是拿掉真正的安裝;只刪指標只會弄斷路標,而 macOS 會再把它們放回去。

    先列出實際已安裝的內容再決定:

    /usr/libexec/java_home -V
    

    這會印出系統知道的每一個 JDK,含版本與路徑。清單只有一筆,選擇就很單純。若有四筆,下一節就很重要。

    移除錯的 JDK 會弄壞其他軟體

    Java 很少是為了自己而裝。Android 工具鏈、Elasticsearch、Minecraft 啟動器、JetBrains IDE、Apache 工具,以及若干企業 VPN 與列印用戶端,都內附或依賴 JVM。有些自帶一份,不受影響。有些解析系統提供的版本,一變就停工。

    若 JDK 是用套件管理器裝的,就用同一個方式移除。Homebrew 安裝的 temurin 用 brew uninstall 拿掉;手動抽走檔案會讓套件資料庫仍以為它還在。

    用支援的方式移除 JDK

    對從 .pkg 安裝的 JDK,移除對象是 /Library/Java/JavaVirtualMachines/ 底下名稱帶版本號的那個目錄,而且需要 sudo。一次移除一個版本,確認對你重要的工具都還正常,再動下一個。

    完成後,/usr/libexec/java_home -V 不應再列出它,而你在 shell profile 裡手動設的任何 JAVA_HOME 現在會指到空處。那個變數是「清乾淨後工具鏈卻失敗」的第二常見原因。

    關掉終端機之前先檢查

    /usr/libexec/java_home -V
    java -version
    

    第一條顯示還剩什麼。第二條要嘛回報版本,要嘛告訴你沒有已安裝的 runtime;在你本來就要清乾淨的機器上,那是正確答案,不是錯誤。

    佔用空間總覽在哪裡有用

    Java 的殘留又小、又散、又無聊:快取、偏好設定、一個外掛、一個偏好設定面板。真正有意思的是盤點,而終端機已經給你了。若你想一次看到某個 JDK、或內附 JDK 的應用程式的整片佔用,每項帶大小,Mole 不用你事先知道路徑就能做到。

    之後要檢查的三個地方

    第一個是 shell 設定檔。寫在 ~/.zshrc 或 ~/.zprofile 裡的手寫 JAVA_HOME,不會跟著 JDK 一起消失。它會繼續指向一個已經不存在的路徑,每個新開啟的 shell 都會繼承這個壞掉的變數。刪掉那一行,或改成 export JAVA_HOME=$(/usr/libexec/java_home),讓它跟著系統目前有的 JDK 走。

    第二個是你的 IDE。JetBrains 工具和 Android Studio 會依專案記錄特定的 JDK 路徑,不會跟著系統變更更新,結果就變成指令列一切正常,某個專案卻建置失敗。

    第三個是套件管理工具裝進來的東西。 brew list | grep -i -E 'jdk|temurin|zulu|openjdk' 可以看出 Homebrew 裝了哪些。 要用 brew uninstall 解除安裝;手動刪資料夾會讓套件資料庫仍以為它們還在。

    騰出空間、管理 App、維護系統、看清磁碟和即時狀態,都在一個原生 Mac App 裡,一次買斷不用訂閱。

    看看 Mole

    繼續閱讀

    • 解除安裝解除安裝 Mac App 而不丟失共用資料3 分鐘閱讀
    • 解除安裝解除安裝 Dropbox 卻不弄丟本機檔案2 分鐘閱讀
    • 解除安裝重設或移除 VS Code,同時守住你的設定2 分鐘閱讀

    Mole · 鼴

    Mac 清理、軟體與狀態工具。

    v1.13.0 (153) · 發佈紀錄

    支援

    說明 功能文件 發佈紀錄

    法律

    服務條款 隱私權政策 退款政策

    資源

    部落格 命令列工具 夥伴推廣

    聯絡

    Twitter hi@mole.fit

    請認明官方網站 mole.fit · 避免下載到來路不明的版本

    命令列版會繼續免費開源。