Wie kann ich in Mountain Lion zwischen den beiden Java-Versionen wechseln, wenn die Java-Einstellungen nicht mehr vorhanden sind?

32

Ich habe zwei Versionen von Java mit Mountain Lion installiert:

Das Update von Apple entfernt die Java-Einstellungen . Bei einer anderen Frage wundert sich jemand über die Entfernung dieses Dienstprogramms.

Meine Frage ist anders:

  • Wie kann ich zwischen den beiden Versionen wechseln, wenn die Java-Einstellungen nicht mehr vorhanden sind?

Ich habe zuvor das Dienstprogramm von Apple verwendet, um Java-Einstellungen mühelos festzulegen. Gibt es ohne dieses Dienstprogramm einen einfachen und schnellen Weg?

Maverik
quelle
Gibt es einen Grund, warum Sie Java Preferences nicht neu installieren können ?
Chharvey
@ TestSubject528491 Wie kann ich das machen?
Maverik
Ich denke das wird dir helfen, ich habe es in meiner Maschine noch nicht ausprobiert. Siehe Schritt 12 und 13 unter dem folgenden Link wikihow.com/Install-Oracle-Java-on-Ubuntu-Linux . Sie können die Schritte wiederholen, um zwischen Java zu wechseln .. hoffe, das hilft Ihnen ..
Dilip Rajkumar
@ DilipRajkumar Es ist für Linux ....
Maverik
Leider habe ich zu Unrecht angenommen , dass der Linux - Befehl auf Mac funktioniert .. Wenn ich mit einer anderen Lösung Glück ich krank vorschlagen ..
Dilip Rajkumar

Antworten:

12

Möglicherweise benötigen Sie zwei Ansätze:

  • eins, um die Version nur für das Applet-Plug-In zu ändern
  • Ein anderer Ansatz, um die Version für andere Teile der JRE zu ändern, ohne die Version für das Applet-Plug-in zu ändern.

Mein letzter Anwendungsfall :

  • Java 8 für Apps, die das Plug-In nicht verwenden
  • Java 7 Update 9 für das Applet-Plug-In.

So wechseln Sie das Applet-Plug-In, jedoch nicht andere Teile des JRE / JDK von Java 8 auf Java 7 Update 9

  1. Beenden Sie Webbrowser und alle anderen Apps, die Java oder das Java-Applet-Plug-in verwenden
  2. JDK installieren 8
  3. Legen Sie das Plug-In beiseite
  4. Installieren Sie JRE 7 Update 9 oder JDK 7 Update 09.

Beiseite legen: vorgeschlagener Zug

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /private/var/tmp

Wenn Sie häufig wechseln möchten, bevorzugen Sie möglicherweise einen anderen temporären Standort.

Ergebnis

sh-3.2$ java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b58)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b02, mixed mode)
sh-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8.2
BuildVersion:   12C60

Gleichzeitig:

Screenshot der Oracle-Überprüfung der Java-Version in Safari

So wechseln Sie das Applet-Plug-In, jedoch nicht andere Teile des JRE / JDK von Java 7 Update 9 auf Java 6 Update 37

Antworten unter:


So wechseln Sie die JRE, jedoch nicht das Applet-Plug-In von Java 8 auf Java 7 Update 9

Installieren Sie JDK 7 Update 09 und anschließend JDK 8

  • Das Betriebssystem und die Apps verwenden standardmäßig die beste Version.

Beenden Sie alle Apps, die Java verwenden. Sie müssen den Browser nicht beenden.

Legen Sie das jdk1.8Verzeichnis… beiseite von

/Library/Java/JavaVirtualMachines

  • Das Betriebssystem und die Apps verwenden Java 7 Update 9.

So wechseln Sie die JRE, jedoch nicht das Applet-Plug-In von Java 7 Update 9 zu Java 6 Update 37

Beenden Sie alle Apps, die Java verwenden. Sie müssen den Browser nicht beenden.

Legen Sie das jdk1.7Verzeichnis… beiseite von

/Library/Java/JavaVirtualMachines

  • Das Betriebssystem und die Apps verwenden Java 6 Update 37.

Beispiel

macbookpro08-centrim:~ gjp22$ java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
macbookpro08-centrim:~ gjp22$ sudo mv /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk /private/var/tmp
Password:
macbookpro08-centrim:~ gjp22$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

Allgemein

Für Benutzer von OS X sind einige der von Oracle bereitgestellten Informationen zunächst irreführend:

… und so weiter.

Einfachheit

Während keiner der oben so einfach ist , mit den Java - Einstellungen als Schalt zuvor von Apple installiert App, die relativ einfache Ansatz beiseite Einstellung (keine Notwendigkeit für spezielle Deinstallation) erinnert an dem Wunsch nach Drag-and-Drop - Installation ... ausgedrückt zuvor in der openjdk-osx-build Bereich.

Jemand mag vielleicht eine App erstellen, aber ich sollte nicht empfehlen, Symlinks zu verwenden - es würde funktionieren, könnte aber mit zukünftigen Drag-and-Drop-Ansätzen für die Installation unvereinbar sein.

Randnotizen

Die aktuellsten unterstützten Releases, für die Oracle Updates öffentlich verfügbar macht, sind (für andere Plattformen als OS X) Java 6 Update 37 und (für Plattformen einschließlich OS X) Java 7 Update 9.

Wenn größere Releases verfügbar sein werden, interpretieren Sie diese Antwort bitte entsprechend neu.

Die Terminologie der Java-Version in dieser Antwort stimmt mit der Terminologie der Java-Hilfe überein.

Graham Perrin
quelle
Beziehen Sie sich wirklich auf Java 8 oder handelt es sich um einen Fehler? :-)
Maverik
1
Wirklich ;-)… bitte beachten Sie die verknüpften Fragen in der rechten Spalte.
Graham Perrin
4
Hier ist ein Tipp, wenn Sie JDK8 verwenden und häufig wechseln möchten. Chmod 0000 einfach das JDK8-Verzeichnis, um es auszuschalten sudo chmod 0000 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/und wieder einzuschalten sudo chmod 0755 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/.
Brett Ryan
1
Letzter Vorschlag von @BrettRyan hat perfekt für mich funktioniert. Ich denke, das ist der einfachste Weg.
Artem
1
Vielen Dank @BrettRyan das war das einfachste !!! Ich schlage dem Autor der Antwort vor, eine Alternative hinzuzufügen. Ich habe mit den Befehlen eine .sh-Datei in meinem Ausgangsordner erstellt und einen Automator erstellt, der an einen Schlüssel gebunden ist, der von einem zum anderen wechselt. Tolle!
Panthro,
29

Öffne ein Terminal mit diesem Befehl:

/usr/libexec/java_home -v 1.6 

Sie können 1.6 in eine beliebige Java-Version ändern, die Sie verwenden möchten, und der Befehl gibt den Speicherort dieser Java-Version aus. (dh: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home)

Dann können Sie JAVA_HOME so einstellen, wie Sie es normalerweise mit der Ausgabe des vorherigen Befehls tun würden. dh:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Also zu vereinfachen; so etwas sollte funktionieren:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

Denken Sie daran, die Version zu überprüfen mit:

java -version

Ich hoffe es hilft.

user2343996
quelle
4
Dies ist die nützlichste Antwort auf dieses Problem, die ich online überall finden konnte. DANKE DIR!
SearchTools-Avi
1
Ok, das sollte die akzeptierte Antwort sein. Ich habe eine obligatorische Update-JAR für einen Anwendungsserver, den ich installiert habe, und sie wird NUR auf Java 6 ausgeführt. Auf diese Weise konnte ich zu Java 6 wechseln, den Updater ausführen und dann zurückschalten. Jetzt kann ich den Anwendungsserver so aktualisieren, dass er auf Java 7 ausgeführt wird.
Adrian J. Moreno,
4

Es sieht so aus, als müsstest du es manuell machen. In der Dokumentation von Oracle ist angegeben, dass jeweils nur eine JRE installiert werden kann .

Auf dieser Apple Support-Seite wird beschrieben, wie Sie zwischen der Apple SE 6 JRE und der Oracle SE 7 JRE wechseln . Um von Oracle's JRE zurück zu Apple's zu wechseln, starten Sie kurz die Terminal-App und geben Sie Folgendes ein:

sudo mkdir -p /Library/Internet\ Plug-Ins/disabled

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /Library/Internet\ Plug-Ins/disabled

sudo ln -sf /System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPlugin2_NPAPI.plugin /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

Auf der Support-Seite finden Sie weitere (und bessere) Anweisungen zum Zurückschalten von Web Start auf JRE 6 und zum Zurückschalten auf Oracle JRE 7 (Neuinstallieren der JRE).

Nicht so einfach wie die Verwendung des Java Preferences-Dienstprogramms, aber besser als gar nichts.

dfjacobs
quelle
1
Die kürzliche Verwendung des Begriffs JRE durch Oracle ist für Benutzer von OS X irreführend. JRE ist viel mehr als nur das Plug-In.
Graham Perrin
2

basierend auf der Antwort von user2343996

alias java8="export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) && java -version"
alias java6="export JAVA_HOME=$(/usr/libexec/java_home -v 1.6) && java -version"
Existeundelta
quelle
-4

Warum müssen Sie 2 Versionen von Java installiert haben?

Apple hat Java nicht als Standard-Update installiert (ab Lion glaube ich). Der beste Weg, um auf einem Mac nach Java zu suchen / Java zu installieren, ist folgender:

  1. Öffnen Sie das Terminal. Tippe "java" (natürlich ohne Anführungszeichen)
  2. Wenn Java nicht vorhanden ist, wird Folgendes angezeigt: "Keine Java-Laufzeit vorhanden, Installation wird angefordert ..."
  3. Java startet die Installation normal (dies ist die falsche ausführbare Datei, die die Installation startet)
  4. Wenn Sie Java haben, um die Version zu überprüfen, geben Sie im Terminal "Java-Version" ein.

Wenn Sie eine andere Java-Version installieren möchten: Rufen Sie einfach die Oracle-Site auf und laden Sie das neueste / ältere JDK herunter.

SashaZd
quelle
Ich habe bereits zwei Versionen von Java, wie ich in der Frage geschrieben habe. Ich frage, wie ich die Standardeinstellung ändern soll.
Maverik
Ich denke, es wird automatisch auf die neueste Version / neueste installierte Version umgeschaltet. In meinem Fall habe ich zuletzt jdk 7 installiert. Das ist also diejenige, die standardmäßig funktioniert.
SashaZd
3
Ich möchte zwischen den Versionen wechseln können.
Maverik
Es gibt Unterschiede zwischen Apple JDK 6 und Oracle JDK 7, die zu Inkompatibilitäten führen können, sowohl zur Kompilierungszeit als auch zur Laufzeit.
JohnnyO
1
Im Allgemeinen versuchen wir nicht, die Prämisse einer Person zu ändern, es sei denn, wir können eine konkurrierende oder überzeugende Alternative anbieten, wenn die Antwort einfach Nein ist. Wir raten auch davon ab, nach Stimmen zu fragen, deshalb habe ich das aus Ihrer Antwort heraus bearbeitet.
bmike