Java 7 unter Mac OS X installiert, Terminal verwendet jedoch weiterhin Version 6

391

Ich habe JDK 7u7 installiert, das von der Oracle-Website heruntergeladen wurde. Nach der Installation zeigt das Terminal jedoch weiterhin Java Version 6 an

$java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)

Irgendeine Idee, warum Java 7 nicht angezeigt wird?

Antwort: OK, das Problem wurde behoben. Hier ist die Antwort: Ich habe festgestellt, dass mein Terminal ein .bash_profile hat und die Java-Home-Variable auf 1.6 gesetzt ist

export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"

Dies ist also die Zeile, die das Problem jedes Mal verursacht, wenn ich ein neues Terminalfenster öffne. Entfernen Sie einfach diese Zeile, um das Problem zu lösen. Sie müssen immer noch den Anweisungen von @aleroot folgen. Wenn dies für Sie jedoch nicht funktioniert, überprüfen Sie in der Einstellungsdatei .bash_profile (oder .bashrc), ob Sie zuvor eine Java-Version exportiert haben.

Yang
quelle
23
Ich hatte dieses Problem, aber ich habe nur die JRE und nicht das JDK aktualisiert. Nachdem ich das JDK aktualisiert hatte, wurde die richtige Version angezeigt.
Paul Maserrat
Migrieren Sie dies, um anders zu fragen?
Nakilon
14
Nur um etwas mehr Aufmerksamkeit auf @ Mazzys Kommentar zu lenken, ist das ein leichter Fehler. Wenn Sie JRE v7 herunterladen, wird Version 7 angezeigt, wenn Sie die Online-Versionsprüfung oder das Java-Kontrollfeld ausführen. Wenn Sie jedoch Java über die Befehlszeile aufrufen, wird die ältere Version von Ihrem zuvor installierten JDK ausgeführt. Stellen Sie daher sicher, dass Sie das JDK und nicht nur das JRE installiert haben.
Cam Jackson
1
Der beste Weg , dies zu lösen , ist es, die verwenden export JAVA_HOMEAnsatz, wie hier detailliert in einer etwas flexibleren Art und Weise.
Brad Parks
5
Lassen Sie mich dies in Großbuchstaben hervorheben: VIELE MENSCHEN, DIE AUF DIESER SEITE LANDEN, MÜSSEN NUR DAS NEUESTE JDK HERUNTERLADEN UND INSTALLIEREN. DAS JAVA CONTROL PANEL AKTUALISIERT NUR DAS JRE.
Walter Tross

Antworten:

64

Da Sie im Bereich "Java-Einstellungen" nur die JVM 7 auf folgende Weise kennzeichnen müssen:

Java-Einstellungen

Um den Bereich " Java-Einstellungen" in Mac OS X einfach und schnell zu öffnen , können Sie spotlight einfach mit + aufrufen SPACEund die Systemeinstellungen eingeben , die in der letzten Zeile des Fensters angezeigt werden.

aleroot
quelle
3
ja, fand es. aber immer noch Version 1.6 im Terminal, muss ich neu starten oder so
Yang
1
Dieses Panel existiert in 10.8 nicht mehr. Alternativen?
Pepijn
68
@Pepijn Das Panale ist seit Mac OSX 10.8.2 Geschichte und es besteht keine Notwendigkeit mehr dafür. Stattdessen müssen Sie verwenden export JAVA_HOME=`/usr/libexec/java_home -v 1.7`, um von Oracle auf das neueste Java 7 JDK zu wechseln.
Uwe Günther
23
Ich denke, sie haben irgendwann die Java-Einstellungen entfernt. Es wird von Spotlight auf meiner Box nicht gefunden. Ausführen von 10.8.5.
Quickshiftin
1
Den genauen Speicherort von JAVA_HOME finden Sie unter -> Systemeinstellungen -> Java. Klicken Sie auf die Registerkarte "Java". Klicken Sie auf Ansicht. Die Pfadvariable zeigt Ihr JAVA_HOME (Kachel / Home).
Agaase
298

Das Installationsprogramm von Oracle fügt Java in das /Library/Internet Plug-Ins/JavaAppletPlugin.plugin. Und es überschreibt nicht /usr/bin/java. Also, wenn Sie eine

whereis java

Im Terminal wird / usr / bin / java zurückgegeben. (was wiederum darauf hinweist /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java, was Apples 1.6-Version ist).

Wenn Sie also die neue Java-Version verwenden möchten, ersetzen Sie den /usr/bin/javaSymlink so, dass er /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/javastattdessen auf Folgendes verweist :

sudo rm /usr/bin/java
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin
Ákos
quelle
22
Hier ist der Befehl: sudo ln -s / Bibliothek / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Inhalt / Home / bin / java / usr / bin
Binarian
11
Viktors Befehl funktioniert. Möglicherweise müssen Sie aber auch sicherstellen, dass Sie den vorhandenen Java-Symlink entfernenrm /usr/bin/java
Matt Florence
7
Bis Oracle-Leute diesen Prozess verbessern, finden Sie hier eine Anleitung für den gesamten Prozess der Installation von Java auf einem OSX-System bis einschließlich dieses letzten Symlink-Schritts: gist.github.com/johan/10590467
ecmanaut
61
Ich haberm: /usr/bin/java: Operation not permitted
Aditya
37
Oderexport PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
Mick
114

Installieren Sie das JDK 7 und dieses Problem wird sich von selbst lösen.

Stellen Sie sicher, dass Sie das Java Development Kit (JDK) erhalten, das Compiler und ähnliches enthält, und nicht nur die Java Runtime Environment (JRE).

BrainO2
quelle
7
Installieren Sie das vollständige JDK, nicht nur das JRE.
BrainO2
5
-1 Es hat nicht geholfen. Installieren von JDK nicht ändert /usr/bin/javanoch JAVA_HOME. Aber Einstellung von JAVA_HOMEgeholfen.
Andrii Nemchenko
3
Bestätigt OK unter OSX 10.9.4. Es ändert nicht den Link / usr / bin, es ändert Dinge darunter. Also /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java # But: /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java -version java version "1.7.0_67"
Joe Atzberger
1
Funktionierte auch für JDK 1.8 - (installiere JDK 1.8 anstelle von JRE 1.8)
Mark Chackerian
Ich habe versucht, Java 1.8 zu installieren, aber das hat auf El Capitan nicht funktioniert. Die Installation von 1.7 hat meine Probleme gelöst.
SPRBRN
104

vi ~/.bash_profile

hinzufügen

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

Dadurch wird Ihr /usr/bin/javaLinkziel angewiesen, das neueste in installierte Java 7-Paket zu verwenden

/Library/Java/JavaVirtualMachines/

Für JDK 1.7.0_17 JAVA_HOMEwäre das also:

/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home

Hinweis: In diesem Bereich wurden in letzter Zeit viele Änderungen vorgenommen, um Mac OS X von Appels eigenen systemintegrierten Java-Paketen auf Oracle-basierte Java-Pakete zu verschieben. Die obige Lösung funktioniert ab Mac OS X 10.8.2 einwandfrei

Uwe Günther
quelle
4
+1 für diese Antwort, die imo die richtige ist, da sie unter Mac OS-Versionen funktioniert, bevor und nachdem 'Java-Einstellungen' entfernt wurden, und indem die Option "-v" angezeigt wird, wird gezeigt, wie Sie Java 6 auch in Java 7 verwenden können installiert ist (was ich will). Daher verwende ich auf meinem Mac mit Lion (10.7.5) denselben Befehl mit "-v 1.6". Dies ist von entscheidender Bedeutung, da ich Java 6 benötige und Oracle keine für Mac OS bereitstellt - nur Java 7. Dadurch kann ich das installierte JAva 6 verwenden, obwohl Java 7 installiert ist.
Rhabarber
1
Um es flexibler zu machen: mikemainguy.blogspot.com/2014/11/…
Mainguy
Weitere Informationen zu dieser großartigen Antwort finden Sie hier !
Brad Parks
Dies funktionierte für mich in Sierra 10.12 nach der Installation des 1.8 JKD. Der Export funktionierte durch Ändern von 1.7 auf 1.8. Tolle Antwort mit dem Dienstprogramm java_home !!
Scott Byers
56

In meinem Fall bestand das Problem darin, dass Oracle es an einem anderen Ort installierte als ich es gewohnt war.

Download von Oracle: http://java.com/de/download/mac_download.jsp?locale=de

  1. Stellen Sie sicher, dass es ordnungsgemäß installiert ist, indem Sie in den Systemeinstellungen nachsehen:

    • Befehlstaste zum Öffnen von Spotlight, geben Sie "Systemeinstellungen" ein und drücken Sie die Eingabetaste.
    • Klicken Sie auf das Java-Symbol in der unteren Reihe. Klicken Sie nach dem Öffnen der Java-Systemsteuerung auf die Registerkarte "Java", "Ansicht ...", und überprüfen Sie, ob Ihre Installation funktioniert hat. Dort sehen Sie auch einen 'Pfad', den Sie in die folgenden Befehle eingeben können, falls sie sich von meinen unterscheiden.
  2. Stellen Sie sicher, dass die Version Ihren Erwartungen entspricht (unterschreiben Sie sie nach Bedarf in Ihrem Pfad):

    / Library / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Contents / Home / bin / java -version

  3. Erstellen Sie einen Link von / usr / bin / java zu Ihrer neuen Installation

    sudo ln -fs / Bibliothek / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Inhalt / Home / bin / java / usr / bin / java

  4. Überprüfen Sie Ihre Version:

    Java-Version

dale.hamill
quelle
Hat auch für mich funktioniert, ich habe auch die andere Erklärung ausprobiert, aber mit Maverix gibt es kein Panel, in dem Sie eine Versionsnummer auswählen können, und auch das Ändern des .bash_profile hat nicht funktioniert. PERFEKT!
Alex Cio
Eclipse sieht nicht 1.7 unter Compiler
Laser Hawk
Arbeitete für mich!. Vor = 1.6.0_65 und Nach Verwendung dieser Lösung = 1.7.0_60 .... danke! :)
Mathe
aber Eclipse geben Fehler wie noch ‚die JVM gemeinsam genutzte Bibliothek nicht das JNI_CreateJavaVM Symbol enthält‘ .... :(
mathe
1
Danke für die Hilfe! Sonst funktionierte nichts. Laufen Yosemite
LordZardeck
33

Ich hatte ein ähnliches Problem mit dem Terminal, das die Java-Version nicht aktualisiert, um mit der auf dem Mac installierten Version übereinzustimmen.

Es gab kein Problem mit der Umgebungsvariablen JAVA_HOME

Ich habe eine vorübergehende und etwas schmerzhafte, aber funktionierende Lösung gefunden.

Fügen Sie in Ihrem .bash_profile die folgende Zeile hinzu:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home"

(Dies ist der Pfad auf meinem Computer, kann jedoch auf Ihrem Computer unterschiedlich sein. Stellen Sie sicher, dass Sie Ihren Pfad erhalten. Die Pfade sollten mit / Library / Java / JavaVirtualMachines / übereinstimmen.)

der Lauf source ~/.bash_profile

Wie bereits erwähnt, handelt es sich hierbei um eine vorübergehende Pflasterlösung, da der Java-Home-Pfad fest codiert ist. Es gibt wirklich keine Möglichkeit, den Pfad festzulegen, um die neuesten Informationen zu erhalten, da Apple dies angeblich bereits für das Terminal tut und das Problem darin besteht, dass die Umgebungsvariable java_home von Apple nicht aktualisiert wird.

Derek
quelle
4
Das Verzeichnis ist leer. $ ls / Library / Java / JavaVirtualMachines /
Pepijn
1
Sie haben wahrscheinlich ein Problem mit der Installation von Java 7. Bitte besuchen Sie die Oracle-Website . Klicken Sie auf den Link "Java SE Development Kit 7u11", akzeptieren Sie die Lizenzvereinbarung und laden Sie "jdk-7u11-macosx-x64.dmg" herunter. Verwenden Sie das dmg, um Java 7 zu installieren, und dies sollte es in Ihrem JavaVirtualMachines-Verzeichnis ablegen.
Derek
Dies ist eine Lösung für Mojave 10.14.1 Anfang 2019
Bitsand
27

Seit El Capitan ist es /usr/bin/javaaufgrund der Einführung der neuen "rootless" -Richtlinie schwierig, den Symlink zu löschen .

Daher habe ich einfach den Pfad zur neuesten Java-Version (in meinem Fall /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin) PATHin meiner .bashrcDatei hinzugefügt :

# Use latest java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH

.bashrcFühren Sie source ~/.bashrcin der Shell aus, um Ihre Datei für die aktuelle Sitzung neu zu laden . Sie müssen dies nur für Sitzungen tun, die vor dem Ändern der .bashrcDatei gestartet wurden .

Jetzt wird die neueste Version verwendet, wenn Sie javain der Shell verwenden.

TabeaKischka
quelle
1
Diese spezielle Lösung funktionierte für mich auf meinem Mac OS X El Capitan. Ich habe die auf el capitan eingerichtete Sicherheit nicht umgangen, sondern Java Version 1.8 installiert. Der Export JAVA_HOME = / mein spezifischer Pfad usw. usw. / hat nicht funktioniert (nachdem Sie zu den Einstellungen gegangen sind und den Pfad zu 1.8 gefunden haben). Bitte beachten Sie, dass 1.6 noch installiert ist. Ich musste eine .bashrc-Datei erstellen und den Pfad wie hier beschrieben festlegen. Ich lief Java-Version und Shazzam! es funktionierte.
Umbregachoong
Ich wollte, dass dies funktioniert, da ich auf El Capitan bin und keine andere Lösung zum Funktionieren bringen kann. Ich habe eine '.bashrc'-Datei erstellt und die Zeile wie oben hinzugefügt, aber wenn ich' java -version 'eingebe, erhalte ich immer noch 1.6. Was könnte ich übersehen haben?
noLongerRandom
@ user3810073 Vielleicht müssen Sie ausführen source .bashrc, um den Inhalt von .bashrc
TabeaKischka
Hat für mich gearbeitet. Ich habe die Zeile zu .bash_profile (im Home-Verzeichnis meines Benutzers) hinzugefügt und dann .bash_profile als Quelle angegeben. Dann gab mir Java-Version die neueste. Vielen Dank!
Mrmuggles
Dies kann auch durch Symlinking erreicht werden, um Folgendes zu /usr/local/binmögen: sudo ln -sf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" /usr/local/bin/java Diese Annahme /usr/local/binist vorher /usr/binin Ihrem, $PATHwas standardmäßig sein sollte.
Lifeofguenter
21

Für mich ist der einfachste und sauberste Weg, Java mit Homebrew wie hier beschrieben zu installieren:

https://stackoverflow.com/a/28635465

brew update
brew cask install java
Bernhardt Scherer
quelle
Einfache und saubere Lösung!. Lief wie am Schnürchen.
Rahul Shukla
2
Dies ist die einzige Lösung, die sowohl Java als auch Java aktualisiert hat. Vielen Dank!
ldanilek
Arbeitete wie Charme :) Vielen Dank
Mohamed Saleh
Dies wird die neueste Version von Java installieren, nicht Java7
Ivo
13

Das grundlegende Problem: /usr/bin/javaVerweist auf eines, das ursprünglich von OSX selbst bereitgestellt wurde ( /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java). Wir müssen dies auf das vom JDK-Installationsprogramm heruntergeladene Problem verweisen . Die folgenden Schritte gelten für OSX 10.10.4 Yosemite.

  • Öffnen Sie die Systemeinstellungen -> wählen Sie Java aus. Das Java-Fenster wird geöffnet.
  • Klicken Sie oben auf die Registerkarte Java. Klicken Sie auf die Schaltfläche "Anzeigen".
  • Die Registerkarte Java Runtime Environment Settings wird wie folgt geöffnet: Registerkarte JRE-Einstellungen
  • Doppelklicken Sie auf das PathElement und kopieren Sie den Pfad (cmd + c). Dies ist die neueste Version, die vom JDK-Installationsprogramm / Updater installiert wurde. In meinem Fall war der Weg/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
  • Terminal öffnen. In diesem Schritt zeigen wir (symbolische Verknüpfung, ln -sBefehl) die Java-Binärdatei des Systems auf die neueste, die wir im vorherigen Schritt entdeckt haben. Führen Sie den folgenden Befehl aus:

sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin/java

Das ist es. Zur Überprüfung können Sie einfach java -version auf dem Terminal ausführen . Es sollte die neueste Version ausgeben, auf die Sie installiert / aktualisiert haben.

Aswin Kumar
quelle
2
Funktioniert für mich, außer dass ich -f zum Befehl ln hinzufügen musste. Andernfalls, wenn mit ln fehlgeschlagen: / usr / bin / java: Datei existiert
Dale
in meinem Fall würde ich usr/local/binanstelle des usr/binTerminalbefehls verwenden
iAkshay
Ich bekomme "Operation nicht erlaubt".
Shardul
Es ist ideal, den Pfad auf diese Weise zu erhalten. Ich konnte es dann exportieren und bashrc neu laden, um das Versionsproblem zu beheben. In meinem Fall migrierte ich von Version 7 auf Version 8 auf Mojave 10.14.1
Bits und
12

Sie können folgenden Befehl in Ihrem Terminal ausführen:

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"

Und dies ersetzt den alten Java durch einen neuen.

Amulya Kashyap
quelle
1
Seltsamerweise ersetzt es, aber wenn ich das Terminal schließe und wieder öffne, zeigt es wieder die ältere Version
Parth Patel
das stimmt. so werid. sehr vorübergehende Lösung
Ein Benutzer
1
Fügen Sie das zur .bashrc-Datei hinzu source ~/.bashrc, um es dauerhaft zu machen
Azimjon Ilkhomov
10

Ich tat

export JAVA_HOME=`/usr/libexec/java_home`

und das hat mein Java 8 Problem behoben.

Vor:

java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

nach:

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
Climbs_lika_Spyder
quelle
1
Das /usr/libexec/java_homeist ein sehr guter Hinweis, danke!
Raffi
1
Habe den Job für mich gemacht, nachdem ich Tonnen von möglichen Lösungen gelesen habe! Danke :)
Ronnyrr
7

http://www.java.com/de/download/faq/java_mac.xml ist ein guter Ort, um zu verstehen, während Apple die Unterstützung für Java einstellt, warum Java-Einstellungen nicht mehr existieren und sich auf System_Preferences => Java = verlassen > Java, wenn Java 7 von Oracle installiert ist.

revher
quelle
2
Dies sind gute Informationen, aber Sie sollten wirklich mehr Details als nur einen Link bereitstellen. Wenn der Link in Zukunft unterbrochen wird, ist Ihre Antwort wirklich nicht sehr nützlich.
Psubsee2003
7

Darf ich Ihnen vorschlagen, sich das Tool Jenv anzuschauen

Auf diese Weise können Sie jederzeit zwischen Ihren installierten JVMs wechseln.

Einfach als:

jenv global oracle-1.7

dann später zu Testzwecken:

jenv global oracle-1.6

Und Sie haben viel mehr Befehle zur Verfügung.

TitiMoby
quelle
+1 für diese Antwort, da Sie Homebrew verwenden können, wenn Sie es bereits in Ihrem OS X-System verwenden. Viel sauberer als andere, sage ich. Weitere Infos hier: jenv.be
piku
6

Eine harte Codierung des JAVA_HOME-Pfads ist möglicherweise nicht die beste Idee. Das /usr/libexec/java_homeDienstprogramm funktioniert unter Mac OSX Lion 10.7.5 und JDK 1.7.0_13. Laut seiner Manpage soll es mit dem alten Java-Einstellungsbereich von Apple verwendet werden, aber es scheint mit dem von Oracle bereitgestellten Ersatz (Java Control Panel) zu funktionieren. Zum Beispiel werden beim Ausführen /usr/libexec/java_home -Valle auf meinem Computer installierten JDKs (sowohl 1.6. * Als auch 1.7. *) Aufgeführt.

Wie in anderen Threads beschrieben (z. B. Was soll ich unter OSX auf JAVA_HOME setzen ), würde ich dennoch empfehlen, Ihrem .bash_profile die folgende Zeile hinzuzufügen:

export JAVA_HOME=$(/usr/libexec/java_home)
zagyi
quelle
Ich würde Ihrem Kommentar hier zustimmen, da dies eine bewährte Methode ist, aber aus irgendeinem Grund wird die Umgebungsvariable java_home nicht richtig festgelegt, weshalb dies nicht funktioniert. Ich glaube, in Apples neuestem Update ist Ihr Vorschlag standardmäßig die Standardaktion für JAVA_HOME in Terminals und anderen verwandten Anwendungen.
Derek
@Derek Was meinst du genau mit "Die Umgebungsvariable java_home wird nicht richtig gesetzt"? Gemäß diesem Artikel soll das /usr/libexec/java_homeDienstprogramm auch mit Java 7-Versionen funktionieren und gibt den Pfad zum aktuellsten installierten JDK zurück. Es funktioniert perfekt auf meiner Maschine.
Zagyi
1
Ja, es soll funktionieren, aber nicht für Menschen mit dem von Pepijin erwähnten Problem.
Derek
6

Das ist verrückt! Wie stellt Oracle ein Installationsprogramm zur Verfügung, das nichts installiert?

Jedenfalls war es für mich:

sudo rm /usr/bin/java
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/java

Dabei ist 1.8.0_31 Ihre installierte Java-Version ...

Kevin Parker
quelle
Warum bietet Apple keine geeignete Methode an?
Jwilleke
6

Falls Sie mehrere Java-Versionen auf Ihrem Computer haben und diese zur Laufzeit dynamisch auswählen möchten, dh in meinem Fall habe ich zwei Versionen:

ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/

Sie können sie ändern, indem Sie den Inhalt von / etc / profile ändern. Fügen Sie einfach die folgenden zwei Zeilen am Ende der Datei hinzu (oder ändern Sie sie):

export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

In meinem Fall sollte es wie folgt aussehen, wenn ich verwenden möchte:

Java 7:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Java 8:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Nachdem Sie die Datei gespeichert haben, führen Sie sie aus source /etc/profile und sie sollte funktionieren. Hier sind die Ergebnisse, wenn ich die erste und zweite Option entsprechend verwende:

Java 7:

java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)

Java 8:

java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

Der Vorgang ist ähnlich, wenn sich Ihr Java-Ordner an verschiedenen Orten befindet.

nxhoaf
quelle
5

Einfache Lösung

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
Mick
quelle
Genial. Diese Lösung machte meinen Tag. Vielen Dank Mick
Ein Benutzer
3

Ich denke, Sie können versuchen, jdk nicht jre zu installieren. Durch die Installation von jdk wird Java in / usr / bin / java ersetzt und die gesamte Bibliothek funktioniert einwandfrei.

DDDrop
quelle
3

Wenn Sie Homebrew installiert haben, können Sie Java-Switcher installieren, um die Java- Standardversion schneller zu ändern

brew tap andycillin/tap
brew install java-switcher

Dann können Sie mit nur einem Befehl Ihre Standard-Java-Version wechseln.

java-switcher 1.7

oder

java-switcher 10
Andy Tran
quelle
Danke Andy, das war einfach.
GreenROBO
1

Sie können diesen Befehl ausführen, um die Java-Version unter / Library / Internet Plugins / zu finden:

defaults read /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Info.plist CFBundleVersion
Hefewe1zen
quelle
1

Dies geschieht, weil Ihr .bash_profile keine Änderungen widerspiegelt. Um dies widerzuspiegeln, verwenden Sie einfach den folgenden Befehl

$ source .bash_profile
Raghav Sharma
quelle
0

Da ich mich diesem Problem nicht gestellt habe, nehme ich eine Ahnung -

Können Sie das bitte versuchen:

Wo zeigt der Softlink "java_home":

ls -lrt /usr/libexec/java_home

Ausgabe: (verkümmert) lrwxr-xr-x java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home

** ls -lrt /System/Library/Frameworks/JavaVM.framework/Versions Mein MAC erzeugt Folgendes:

 lrwxr-xr-x CurrentJDK ->
 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents**

 lrwxr-xr-x   Current -> A
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4.2 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4 -> CurrentJDK

Auf dieser Grundlage erhalten wir möglicherweise einen Hinweis, um fortzufahren.

user1428716
quelle
Lesen Sie einige Kommentare im Internet zu Java 7-Problemen mit MAC-OSX und es wird blockiert angezeigt . Siehe dies: grep.dk/tag/xprotect-meta-plist . In XProtect.meta.plist habe ich Java 7 und Flash aufgelistet. Bis spielt die Vulnerability Police
user1428716
0

Ich habe dieses Problem behoben, indem ich Yosemite neu installiert und dann die Java-Version auf dem Terminal (Java-Version) und (Java-Version) überprüft habe. Es funktioniert jetzt einwandfrei. Es ändert sich nicht zu Java 7, da Version 6 noch auf (Befehl + n) vorhanden ist ) libray> java> javavirtualmachine> Ihre aktuelle javac-version. Sie müssen sich an java home wenden.

AJAY
quelle
0

Ich habe dieses Problem mit gelöst sudo rm /usr/bin/java

Und ich habe die letzte Java SE-Laufzeitumgebung heruntergeladen und installiert: http://www.oracle.com/technetwork/java/javase/downloads/index.html

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/javahat bei mir nicht funktioniert, weil ich bekommen habe Operation not permitted. El Capitan schützt jetzt bestimmte Systemverzeichnisse im "rootless" -Modus (auch bekannt als System Integrity Protection). Es ist auf absehbare Zeit auf macOS Sierra und wahrscheinlich auf neue macOS-Versionen anwendbar.

Charles Hamel
quelle
0

Durch die Installation über verteiltes JDK-DMG von der Oracle-Site wird alles für mich automatisch aktualisiert. Ich habe (in El Capitan) Updates durch System Preferences > JavaDo-Updates gesehen, aber das spiegelt sich nicht in der Befehlszeile wider. Die Installation über DMG erledigt den Job.

Santanu Karar
quelle
0

Überprüfen Sie die installierten JDK-Versionen:

$ ls  /Library/Java/JavaVirtualMachines/
jdk-11.0.2.jdk  jdk1.8.0_91.jdk

Jetzt in Ihrem ~/.bashrcExport unter JAVA_HOMEAngabe der Version:

if [ -e /usr/libexec/java_home ]; then
  export JAVA_HOME=$(/usr/libexec/java_home -v 11)
fi

Quelle Die bashrc-Datei und die Java-Version werden aktualisiert:

$ java -version
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)
Miguel Mota
quelle
0

Die neueste 100% effektive Methode:


in bash:

vim ~/.bash_profile

hinzufügen

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
  • :wq speichern
  • cmd + q erzwinge das Beenden der Bash
  • Öffne die Bash erneut und tippe ein java -version

Aber eigentlich zeigt dieser Weg auf jre nicht jdk.

Wenn Sie den Pfad zu JDK zeigen möchten, benötigen Sie

  1. Stellen Sie sicher, dass Sie JDK installiert haben und keine einzige JRE-Laufzeit
  2. Wenn Sie den vorherigen Pfad ersetzen PATH="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk", können Sie /Library/Java/JavaVirtualMachinessicherstellen, dass Sie die erwartete JDK-Version installiert haben.
liangli
quelle