Wie entferne ich Java 10? Oder zur vorherigen Version zurückkehren?


26

Der Java-Updater auf meinem Mac hat eine unbekannte Version von Java 10.0.1 installiert, die ich noch nie gehört habe. Das Ergebnis ist, dass ALLE meine Java-Apps nicht mehr ausgeführt werden, was Java sinnlos macht.

Die offiziellen Anweisungen zum Entfernen von Java sind:

  • sudo rm -fr / Library / Internet \ Plug-Ins / JavaAppletPlugin.plugin

Was nützt nichts, weil ich kein Java im Browser verwende (wer ist verrückt genug, das zu tun?)

  • sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefPane

Das ist nutzlos, weil es nur den Einstellungsbereich entfernt

  • sudo rm -fr ~ / Library / Application \ Support / Java

Was nutzlos ist, weil dieses Verzeichnis bereits leer ist

Die offiziellen Anweisungen zum Entfernen von Java auf einem Mac machen absolut nichts.

Wenn ich meine Java-Apps mit java -jar vom Terminal aus starte, funktionieren sie. Vom Terminal aus sehe ich Folgendes:

/usr/libexec/java_home -V
Matching Java Virtual Machines (3):
    1.8.0_131, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
    1.6.0_65-b14-468, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Die Java-Version vom Terminal aus ist also 1.8.0_131, die von mir gewünschte Version. Wenn ich vom Desktop aus Apps mit JavaAppLauncher starte, ist die Java-Version 10.0.1.

Wie kann ich diese Katastrophe, die Oracle mit seinem automatischen Updater verursacht hat, rückgängig machen?

Antworten:


4

Ich hatte das gleiche Problem: Ich hatte Java 8 installiert, aber später 10 installiert. Dann entfernte ich 10 und als ich ein Glas vom Terminal startete sie in Version 8, und wenn ich die Version mit java -versionim Terminal I überprüfte würde zurückkommen java version "1.8.0_181. Wenn ich jedoch im Finder eine .jar- Datei ausführte, lief diese in Version 10, und auch wenn ich zum Java-Einstellungsbereich ging, wurde die Version als Version 10 aufgeführt. Dies war unerwünscht: Ich habe versucht, Version 10 vollständig zu entfernen.

Dann habe ich JavaAppletPlugin mit rm /Library/Internet\ Plug-Ins/JavaAppletPlugin.pluginJava SE JDK 8 aus dem Internet gelöscht und neu installiert. es funktioniert jetzt. Wenn ich .jar ausführe, laufen sie in Java 8.

Mir ist klar, dass Sie dies in Ihrem ersten Schritt erwähnt haben, aber ich schließe daraus, dass Sie diesen Schritt nicht getan haben? Wenn ich mich irre, dann hast du ein anderes Problem. Aber das hat meins gelöst.


Ja, ich habe nicht versucht, das Applet-Plugin zu löschen, weil ich es trotzdem im Browser deaktiviert habe
Magnetic_dud

Sinnvoll. Nach meiner Erfahrung scheint sich das Vorhandensein von JavaAppletPlugin jedoch darauf auszuwirken, welche Java-Version zum Ausführen von .jar-Apps im Finder verwendet wird. Für mich habe ich die JVM v10 gelöscht, aber erst als ich JavaAppletPlugin gelöscht habe, hat der Finder die Verwendung von v10 zum Ausführen von .jar-Apps beendet.
Postylem

45

Ich glaube, das Problem besteht darin, zum richtigen Verzeichnis zu navigieren. Sobald Sie dort sind, wo Sie sein sollen, können Sie die sudo-Befehle ausführen, um die Versionen von Java zu entfernen, die Sie entfernen möchten.

Führen Sie zuerst den Befehl im Terminal aus, um festzustellen, welche Java-Version Sie ausführen.

java -version

Anschließend können Sie mit dem folgenden Befehl zu der lästigen Version von Java navigieren, die Sie löschen möchten:

cd /Library/Java/JavaVirtualMachines

Sobald Sie im JavaVirtualMachinesPfad sind, geben Sie ein, um lszu sehen, welche Java-Versionen Sie installiert haben.

ls

und schließlich, wenn Sie wissen, welche Version oder Versionen von Java Sie deinstallieren möchten:

sudo rm -rf jdk-10.0.1.jdk #or whichever version you want to delete

Das Problem ist, dass die auf dem Bedienfeld angezeigte Version nicht mit der Java-Version im Terminal übereinstimmt. Wenn ich Java 8.171 entfernen möchte, sieht es so aus, als gäbe es auch keinen Weg: imgur.com/a/iIK67bD
Magnetic_dud

Und das jdk 10.0.1 war in diesem Ordner nicht vorhanden
Magnetic_dud

@Magnetic_dud Sie sollten weiterhin in der Lage sein, mithilfe der Dateiverzeichnisstruktur mit dem Befehl ls ein Debugging durchzuführen und anschließend ein neues funktionierendes Jdk oder eine Java-Version, die Sie installieren, zu löschen und erneut zu installieren.
Colin Ilgen,

9

Wenn Sie mehr als eine Version von jdk haben:

$ ls -l /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel  96 30 avr 15:15 jdk-10.0.1.jdk
drwxr-xr-x  3 root  wheel  96 30 avr 15:24 jdk1.8.0_172.jdk
drwxr-xr-x  3 root  wheel  96 17 oct 10:59 jdk1.8.0_191.jdk

ändere dein JAVA_HOME

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home

-1

Ich habe die alte (funktionierende) Version von java.com heruntergeladen

Tatsächlich ist Java 8.171 der Download, der standardmäßig angezeigt wird. Ich weiß nicht, warum es automatisch auf 10.0.1 aktualisiert wurde, wenn es Beta-Qualität ist.

Jetzt wird es nicht installiert, es heißt "Entschuldigung, Sie haben das neuere und bessere 10.0.1 Java"

Führen Sie zur Installation die in der Frage genannten scheinbar nutzlosen Befehle aus. Java funktioniert weiterhin im Terminal, aber dann können Sie mit dem Installationsprogramm die richtige Version, 1.8_171, installieren

Deaktivieren Sie jetzt die Updates, wenn Sie Ihre Apps nicht erneut unterbrechen möchten. Java ist eine Sicherheitsbedrohung. Es sollte monatlich aktualisiert werden. Stellen Sie daher sicher, dass es in Ihrem Browser deaktiviert ist.

Aus irgendeinem Grund, wenn Sie Java-Version ausführen, erhalten Sie immer noch:

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

Welches ist eine andere falsche Version. Wichtig ist jedoch, dass Ihre Java-Apps jetzt funktionieren. Stellen Sie sicher, dass das Browser-Plug-in zu Ihrer Sicherheit deaktiviert ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.