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.
export JAVA_HOME
Ansatz, wie hier detailliert in einer etwas flexibleren Art und Weise.Antworten:
Da Sie im Bereich "Java-Einstellungen" nur die JVM 7 auf folgende Weise kennzeichnen müssen:
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.
quelle
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
, um von Oracle auf das neueste Java 7 JDK zu wechseln.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 eineIm 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/java
Symlink so, dass er/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
stattdessen auf Folgendes verweist :quelle
rm /usr/bin/java
rm: /usr/bin/java: Operation not permitted
export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
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).
quelle
/usr/bin/java
nochJAVA_HOME
. Aber Einstellung vonJAVA_HOME
geholfen./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"
vi ~/.bash_profile
hinzufügen
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
Dadurch wird Ihr
/usr/bin/java
Linkziel angewiesen, das neueste in installierte Java 7-Paket zu verwenden/Library/Java/JavaVirtualMachines/
Für JDK
1.7.0_17
JAVA_HOME
wä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
quelle
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
Stellen Sie sicher, dass es ordnungsgemäß installiert ist, indem Sie in den Systemeinstellungen nachsehen:
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
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
Überprüfen Sie Ihre Version:
Java-Version
quelle
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:
(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.
quelle
Seit El Capitan ist es
/usr/bin/java
aufgrund 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
)PATH
in meiner.bashrc
Datei hinzugefügt :.bashrc
Führen Siesource ~/.bashrc
in 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.bashrc
Datei gestartet wurden .Jetzt wird die neueste Version verwendet, wenn Sie
java
in der Shell verwenden.quelle
source .bashrc
, um den Inhalt von .bashrc/usr/local/bin
mögen:sudo ln -sf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" /usr/local/bin/java
Diese Annahme/usr/local/bin
ist vorher/usr/bin
in Ihrem,$PATH
was standardmäßig sein sollte.Für mich ist der einfachste und sauberste Weg, Java mit Homebrew wie hier beschrieben zu installieren:
https://stackoverflow.com/a/28635465
quelle
Das grundlegende Problem:
/usr/bin/java
Verweist 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.Path
Element 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
ln -s
Befehl) 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.quelle
usr/local/bin
anstelle desusr/bin
Terminalbefehls verwendenSie können folgenden Befehl in Ihrem Terminal ausführen:
Und dies ersetzt den alten Java durch einen neuen.
quelle
source ~/.bashrc
, um es dauerhaft zu machenIch tat
und das hat mein Java 8 Problem behoben.
Vor:
nach:
quelle
/usr/libexec/java_home
ist ein sehr guter Hinweis, danke!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.
quelle
Darf ich Ihnen vorschlagen, sich das Tool Jenv anzuschauen
Auf diese Weise können Sie jederzeit zwischen Ihren installierten JVMs wechseln.
Einfach als:
dann später zu Testzwecken:
Und Sie haben viel mehr Befehle zur Verfügung.
quelle
Eine harte Codierung des JAVA_HOME-Pfads ist möglicherweise nicht die beste Idee. Das
/usr/libexec/java_home
Dienstprogramm 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 -V
alle 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:
quelle
/usr/libexec/java_home
Dienstprogramm auch mit Java 7-Versionen funktionieren und gibt den Pfad zum aktuellsten installierten JDK zurück. Es funktioniert perfekt auf meiner Maschine.Das ist verrückt! Wie stellt Oracle ein Installationsprogramm zur Verfügung, das nichts installiert?
Jedenfalls war es für mich:
Dabei ist 1.8.0_31 Ihre installierte Java-Version ...
quelle
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:
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):
In meinem Fall sollte es wie folgt aussehen, wenn ich verwenden möchte:
Java 7:
Java 8:
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 8:
Der Vorgang ist ähnlich, wenn sich Ihr Java-Ordner an verschiedenen Orten befindet.
quelle
Einfache Lösung
quelle
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.
quelle
Wenn Sie Homebrew installiert haben, können Sie Java-Switcher installieren, um die Java- Standardversion schneller zu ändern
Dann können Sie mit nur einem Befehl Ihre Standard-Java-Version wechseln.
oder
quelle
Sie können diesen Befehl ausführen, um die Java-Version unter / Library / Internet Plugins / zu finden:
quelle
Dies geschieht, weil Ihr .bash_profile keine Änderungen widerspiegelt. Um dies widerzuspiegeln, verwenden Sie einfach den folgenden Befehl
quelle
Da ich mich diesem Problem nicht gestellt habe, nehme ich eine Ahnung -
Können Sie das bitte versuchen:
Wo zeigt der Softlink "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:
Auf dieser Grundlage erhalten wir möglicherweise einen Hinweis, um fortzufahren.
quelle
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.
quelle
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/java
hat bei mir nicht funktioniert, weil ich bekommen habeOperation 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.quelle
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 > Java
Do-Updates gesehen, aber das spiegelt sich nicht in der Befehlszeile wider. Die Installation über DMG erledigt den Job.quelle
Überprüfen Sie die installierten JDK-Versionen:
Jetzt in Ihrem
~/.bashrc
Export unterJAVA_HOME
Angabe der Version:Quelle Die bashrc-Datei und die Java-Version werden aktualisiert:
quelle
Die neueste 100% effektive Methode:
in bash:
hinzufügen
:wq
speichernjava -version
Aber eigentlich zeigt dieser Weg auf jre nicht jdk.
Wenn Sie den Pfad zu JDK zeigen möchten, benötigen Sie
PATH="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk"
, können Sie/Library/Java/JavaVirtualMachines
sicherstellen, dass Sie die erwartete JDK-Version installiert haben.quelle