Rimuovere Java dal Mac senza rompere la toolchain
Prima di disinstallare Java dal Mac, rispondi a due domande: quale versione hai installato e quali altri programmi ne hanno bisogno. Saltare questa verifica può rendere inutilizzabili i tuoi strumenti di sviluppo.
Le istruzioni di Oracle sono brevi, e la riga più importante non è un passaggio. È un avviso su una directory che dovresti lasciare stare.
Prima di eliminare i file di supporto, confronta la procedura ufficiale attuale di Oracle JDK. Se il produttore offre un programma dedicato o un comando nell’app, usalo per primo e tratta dopo solo i residui di cui puoi confermare il proprietario.
Il documento Oracle copre solo i JDK installati dal .pkg di Oracle, non Temurin, Homebrew o i runtime inclusi nelle app.
Non rimuovere Java da /usr/bin
Oracle lo afferma direttamente: non tentare di disinstallare Java rimuovendo gli strumenti Java da /usr/bin. Quella directory fa parte del software di sistema, e ogni modifica viene annullata da Apple al successivo aggiornamento di macOS.
Questo è il modo più comune in cui l'operazione va male. Digitare which java restituisce un percorso sotto /usr/bin, che sembra la risposta, e non lo è. Su macOS quelli sono stub che puntano al runtime effettivamente installato. Eliminarli rimuove i cartelli, non l'edificio, e macOS li ripristina comunque in seguito.
Sapere quale Java stai rimuovendo
Un runtime e un kit di sviluppo sono installazioni diverse con rimozioni diverse.
Il JRE di Oracle, il runtime per utenti finali con il plug-in del browser e il pannello delle preferenze, si trova in tre posti che Oracle indica:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin
/Library/PreferencePanes/JavaControlPanel.prefPane
~/Library/Application Support/Oracle/Java
Un JDK è separato, si installa sotto /Library/Java/JavaVirtualMachines/, e rimuoverlo richiede privilegi di amministratore. Puoi averne diversi affiancati, il che è normale e spesso voluto.
Elenca cosa è effettivamente installato prima di decidere:
/usr/libexec/java_home -V
Questo stampa ogni JDK che il sistema conosce, con versione e percorso. Se l'elenco ha una sola voce, la scelta è semplice. Se ne ha quattro, allora conta la sezione successiva.
Rimuovere il JDK sbagliato rompe altro software
Java è raramente installato da solo. Strumenti Android, Elasticsearch, launcher Minecraft, IDE JetBrains, strumenti Apache e diversi client VPN e di stampa aziendali includono una JVM oppure ne dipendono. Alcuni includono la propria copia e non ne risentono. Altri usano ciò che il sistema offre e smettono di funzionare quando cambia.
Se un JDK è stato installato da un gestore di pacchetti, rimuovilo con lo stesso gestore con cui è arrivato. Un temurin installato con Homebrew si disinstalla con brew uninstall, e togliere i file a mano lascia il database dei pacchetti convinto che sia ancora presente.
Rimuovi un JDK nel modo ufficiale
Per un JDK installato da un .pkg, si rimuove la directory sotto /Library/Java/JavaVirtualMachines/ che porta la versione nel nome, e serve sudo. Rimuovi una versione alla volta e controlla gli strumenti che ti interessano prima di rimuovere la successiva.
Dopo, /usr/libexec/java_home -V non dovrebbe più elencarlo, e qualsiasi JAVA_HOME impostato a mano in un profilo shell ora non punta a nulla. Quella variabile è la seconda causa più comune di una toolchain che fallisce dopo una rimozione pulita.
Controlla prima di chiudere il Terminale
/usr/libexec/java_home -V
java -version
Il primo mostra cosa resta. Il secondo o riporta una versione o ti dice che nessun runtime è installato, che su una macchina che volevi ripulire è la risposta corretta e non un errore.
Quando serve un elenco dei file installati
I residui di Java sono piccoli, sparsi e noiosi: cache, preferenze, un plug-in, un pannello delle preferenze. La parte interessante è l'inventario, e il Terminale te lo dà già. Se preferisci vedere l'intera impronta di un JDK o delle app che ne includono uno, in un unico elenco con dimensioni, Mole lo fa senza chiederti di conoscere i percorsi in anticipo.
Tre posti da controllare dopo
Il primo è il profilo della shell. Un JAVA_HOME scritto a mano in ~/.zshrc o
~/.zprofile non sparisce insieme al JDK. Se indica il JDK rimosso, ogni nuova shell
eredita il percorso non valido. Rimuovi la riga se non ti serve più alcun JDK.
Se ne resta uno adatto, verifica il suo percorso oppure usa
export JAVA_HOME=$(/usr/libexec/java_home) e controlla la versione selezionata.
Il secondo sono gli IDE. Gli strumenti JetBrains e Android Studio memorizzano un percorso JDK specifico per progetto e non seguono un cambiamento di sistema: il sintomo tipico è un progetto che non compila mentre dalla riga di comando tutto funziona.
Il terzo è tutto ciò che ha installato un package manager.
brew list | grep -i -E 'jdk|temurin|zulu|openjdk' mostra cosa proviene da Homebrew.
Quelli si disinstallano con brew uninstall; cancellare le directory a mano lascia
il database dei pacchetti convinto che siano ancora installati.