Guide

How to uninstall Java on a Mac

To uninstall Java on a Mac, identify the exact runtime or JDK and use its vendor or package manager’s removal procedure. Java 8’s browser plug-in, a development JDK and an app’s bundled runtime are different installations. Leave the Java tools in /usr/bin alone.

By · Updated · 6 min read · For Macs with Apple silicon running macOS 15 or later

Which Java do you have?

The Java Runtime Environment runs Java applications; a Java Development Kit includes tools for building them. A browser-era Java 8 installation may also have an old control panel or plug-in. Removing one of these does not establish that every app’s private runtime has disappeared.

Start with a read-only inventory in Terminal:

/usr/libexec/java_home -V

This asks Apple’s java_home tool to list JVM installations it recognizes. It needs no sudo and does not uninstall anything. The result can include version, architecture, vendor and home paths. An error saying no runtime was found is also a useful result; do not install Java just to make the command succeed.

The checked Mac returned that no Java runtime could be located on 23 October 2026. This page therefore does not claim to have tested a Java removal. The documented methods below are reference procedures for an installation you have identified.

Before removing a runtime

Back up projects and any local data kept by the Java app you are retiring. Keep build configuration, wrapper files and the required Java version in the project. A project directory and a compiler installation are separate things; uninstalling the compiler does not create a backup of the project.

Quit Java applications and stop your own development work first. Check whether another app or account needs the same JDK. If a work or school administrator installed it, ask IT and stop. A shared runtime can support services you do not see in your own Dock.

If the goal is to stop a particular app using CPU, confirm the owning app instead of removing every runtime. A private runtime can live inside an app bundle and may not appear in java_home’s recognized installation list. Use that app’s documented uninstall procedure when the whole app is unwanted.

Oracle Java 8 JRE: identify the old components

Oracle’s Java.com removal article explicitly applies to Java 8. It names these components:

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

These paths help identify the installation; they are not a universal list for newer JDKs. Oracle’s procedure requires administrator privileges for shared components. Have the administrator follow the linked Java-8 instructions for the exact installed edition rather than deleting shared Library folders or copying a recursive command into Terminal.

A missing control panel does not prove there is no development JDK. Conversely, installing a modern JDK is not required to remove an unwanted old plug-in. Keep those questions separate and verify the actual component.

Oracle JDK: use the matching release instructions

Oracle’s JDK 26 documentation places installed development kits under /Library/Java/JavaVirtualMachines, with version-specific bundle names. For example, its JDK 26 page identifies /Library/Java/JavaVirtualMachines/jdk-26.jdk. That example is not a statement that version 26 is installed on your Mac.

Use the inventory to identify the precise kit, then give the administrator Oracle’s removal section for that feature release. Do not remove the parent JavaVirtualMachines directory or other vendors’ bundles. If several projects require different versions, retain the ones they use and update the project configuration deliberately.

Oracle explicitly warns against removing Java tools from /usr/bin. Those belong to system software and are not the installed JDK bundle you are trying to remove. A command such as java remaining in the system path is not proof that an Oracle uninstall failed.

Homebrew and other JDK vendors

If Homebrew installed Java, let Homebrew manage its package records and dependencies. Read-only checks include:

brew list --formula
brew list --cask

Match the actual formula or cask to the JDK path and vendor. Names vary by vendor and version; do not choose a package only because its name contains Java. Homebrew’s uses --installed command can identify installed formula dependents.

Before package removal: confirm that no remaining tool needs the runtime. Uninstalling it changes the working development environment. Keep project requirements and a backup first.

Use brew uninstall with the exact confirmed formula or cask, as Homebrew documents. Do not force removal past dependency checks, and do not manually delete the package’s installation directory. The Homebrew guide explains the difference between removing a package and removing Homebrew itself.

For a JDK from another vendor or version manager, use that vendor’s documentation. Oracle’s path layout is not proof that a different vendor has the same removal method. If you cannot establish who installed it, keep the inventory and ask the administrator before changing shared files.

Verify the result and environment settings

Open a new Terminal window and repeat /usr/libexec/java_home -V. Check the specific kit you removed, rather than expecting every Java-capable app to stop working. An app with a bundled runtime can continue independently.

Review a custom JAVA_HOME entry in your shell profile or editor settings if it still points at the removed kit. Back up that profile before editing and change only the confirmed entry. Do not erase the profile or alter global environment settings to hide a warning. Test the projects and tools you intend to keep.

Where Tend fits

Tend’s free app list can help identify an active Java app in your account using CPU, memory and estimated watts. Its Pro Uninstaller moves a selected app bundle and reviewed support files in your own Library to the Trash; it does not manage JDK dependencies or remove shared Java frameworks.

Free storage inspection can show eligible files inside your home folder, with reviewed Trash moves in Pro. Use the general app-removal guide for app bundles and Python removal for another example of why language installers need distinct methods.

Questions

Can I delete Java from /usr/bin?

No. Oracle warns that those tools are part of system software. Identify the separately installed runtime or JDK instead.

Does java_home list every app’s bundled Java?

Do not assume it does. It reports JVM installations it recognizes; an app can carry a private runtime inside its own bundle.

Why does Java still work after removing a JDK?

Another kit or an app’s bundled runtime may remain. Recheck the exact version and path in a new Terminal window before removing more components.

Sources

Sources checked 23 October 2026. Spotted something out of date? Tell us and we'll fix it.

See what is taking space on your Mac

Tend is free to download. Pro is $1.99 a month, $12.99 a year with a 7-day free trial, or $29.99 once.