web-dev-qa-db-de.com

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

Ich habe JDK 7u7 installiert, das von der Oracle-Website heruntergeladen wurde. Nach der Installation zeigt das Terminal jedoch immer noch 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)

eine Idee, warum Java 7 nicht angezeigt wird?

Ans: 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 verursacht, wenn ich ein neues Terminalfenster öffne. Diese Zeile einfach entfernen, löst das Problem. Sie müssen weiterhin den Anweisungen von @aleroot folgen. Wenn dies jedoch nicht funktioniert, überprüfen Sie die Einstellungsdatei .bash_profile (oder .bashrc), um festzustellen, ob Sie zuvor eine Java-Version exportiert haben.

375
Yang

Da Sie im Bereich Java-Einstellungen nur die JVM 7 folgendermaßen kennzeichnen müssen:

Java Preferences

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

64
aleroot

Das Installationsprogramm von Oracle fügt Java in /Library/Internet Plug-Ins/JavaAppletPlugin.plugin ein. Und /usr/bin/Java wird nicht überschrieben. Also, wenn Sie eine ausgeben

whereis Java

im Terminal wird/usr/bin/Java zurückgegeben. (was wiederum auf /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/Java verweist, die Version 1.6 von Apple).

Wenn Sie also die neue Java-Version verwenden möchten, ersetzen Sie den /usr/bin/Java-Symlink, sodass er stattdessen auf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java zeigt:

Sudo rm /usr/bin/Java
Sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java /usr/bin
294
Ákos

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 Java Runtime Environment (JRE).

113
BrainO2

vi ~/.bash_profile

hinzufügen 

export Java_HOME=`/usr/libexec/Java_home -v 1.7`

Dadurch wird Ihrem /usr/bin/Java-Link-Ziel das neueste Java 7-Paket zugewiesen, das in installiert ist 

/Library/Java/JavaVirtualMachines/

Für JDK wäre 1.7.0_17Java_HOME:

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

Hinweis: In letzter Zeit wurde in diesem Bereich viel geändert, um Mac OS X von Appels eigenen System-integrierten Java-Paketen auf Oracle-basierte Java-Pakete umzustellen. Die obige Lösung funktioniert einwandfrei ab Mac OS X 10.8.2 

103
Uwe Günther

In meinem Fall bestand das Problem darin, dass Oracle es an einem anderen Ort als ich installiert hatte.

Von Oracle herunterladen: http://Java.com/de/download/mac_download.jsp?locale=de

  1. Überprüfen Sie die ordnungsgemäße Installation, indem Sie in den Systemeinstellungen nachschlagen:

    • Befehlsbereich, um Spotlight zu öffnen, geben Sie 'System Preferences' ein und drücken Sie die Eingabetaste. 
    • Klicken Sie in der unteren Zeile auf das Java-Symbol. Klicken Sie nach dem Öffnen der Java-Systemsteuerung auf die Registerkarte "Java", "Ansicht ..." und überprüfen Sie, ob Ihre Installation funktioniert hat. Sie können dort auch einen 'Pfad' sehen, den Sie in die unten stehenden Befehle einfügen können, falls sie sich von meinen unterscheiden.
  2. Stellen Sie sicher, dass die Version Ihren Vorstellungen entspricht (je nach Bedarf in Ihrem Pfad):

    / Library/Internet\Plug-Ins/JavaAppletPlugin.plugin/Inhalt/Home/bin/Java -Version

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

    Sudan ln -fs/Library/Internet\Plug-Ins/JavaAppletPlugin.plugin/Inhalt/Home/bin/Java/usr/bin/Java

  4. Überprüfe deine Version:

    Java-Version

56
dale.hamill

Ich hatte ein ähnliches Problem mit Terminal, bei dem die Java-Version nicht mit der auf dem Mac installierten Version aktualisiert wurde.

Bei der Einstellung der Umgebungsvariable Java_HOME ist kein Problem aufgetreten 

Ich habe eine temporäre und etwas schmerzhafte, aber funktionierende Lösung gefunden.

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

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

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

der Lauf source ~/.bash_profile

Wie ich bereits erwähnt habe, handelt es sich um eine temporäre Lösung für die Bandhilfe, da der Java-Home-Pfad hart codiert ist. Es gibt wirklich keine Möglichkeit, den Pfad für die neuesten Informationen festzulegen, da Apple dies angeblich bereits für das Terminal tut und das Problem ist, dass die Java_home-Umgebungsvariable von Apple nicht aktualisiert wird.

32
Derek

Seit El Capitan ist es schwierig, den /usr/bin/Java-Symlink zu löschen, da die neue "rootless" -Politik eingeführt wurde.

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

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

Um Ihre .bashrc-Datei für die aktuelle Sitzung neu zu laden, führen Sie source ~/.bashrc in der Shell aus. Sie müssen dies nur für Sitzungen tun, die gestartet wurden, bevor Sie die .bashrc-Datei ändern.

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

24
TabeaKischka

Für mich ist es am einfachsten und saubersten, Java mit dem hier beschriebenen Homebrew zu installieren:

https://stackoverflow.com/a/28635465

brew update
brew cask install Java
20

Das grundlegende Problem: /usr/bin/Java verweist auf ein von OSX selbst bereitgestelltes (/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/Java) Wir müssen auf den vom JDK-Installationsprogramm heruntergeladenen verweisen. Die folgenden Schritte beziehen sich auf 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 "Ansicht".
  • Die Registerkarte Einstellungen für die Java-Laufzeitumgebung wird wie folgt geöffnet:  JRE Settings tab
  • Doppelklicken Sie auf den Eintrag Path und kopieren Sie den Pfad (cmd + c). Dies ist die neueste Version, die vom JDK-Installationsprogramm/Updater installiert wurde. In meinem Fall war der Pfad /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/Java
  • Terminal öffnen. In diesem Schritt weisen wir das Java-Binary des Systems auf den neuesten Stand (symbolischer Link, ln -s-Befehl), den wir im vorherigen Schritt gefunden 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 ausgegeben werden, auf der Sie installiert/aktualisiert wurden.

12
Aswin Kumar

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 das alte Java durch neues.

11
Amulya Kashyap

Ich tat 

export Java_HOME=`/usr/libexec/Java_home`

und das Problem mit Java 8 wurde 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 dem:

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)
10

Darf ich Ihnen vorschlagen, sich das Tool Jenv anzusehen?

Auf diese Weise können Sie jederzeit zwischen den 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.

7
TitiMoby

http://www.Java.com/de/download/faq/Java_mac.xml ist ein schöner Ort, um zu verstehen, während Apple die Unterstützung für Java beendet, warum Java-Einstellungen nicht mehr existieren und auf System_Preferences angewiesen sind => Java => Java, wenn Java 7 von Oracle installiert ist.

7
revher

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

Für mich war es sowieso:

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

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

6
Kevin Parker

Das Festcodieren des Java_HOME-Pfads ist möglicherweise nicht die beste Idee. Das Dienstprogramm /usr/libexec/Java_home funktioniert für mich unter Mac OSX Lion 10.7.5 und JDK 1.7.0_13. Laut seiner Manpage soll sie mit Apples alten Java-Voreinstellungsfenstern verwendet werden, scheint jedoch mit dem von Oracle (Java Control Panel) bereitgestellten Ersatz zu arbeiten. Beim Ausführen von /usr/libexec/Java_home -V werden beispielsweise alle installierten JDKs (sowohl 1.6. * Als auch 1.7. *) Auf meinem Computer aufgelistet.

Wie in anderen Threads besprochen (z. B. Was muss ich unter OSX auf Java setzen?), Würde ich trotzdem empfehlen, die folgende Zeile zu Ihrem .bash_profile hinzuzufügen:

export Java_HOME=$(/usr/libexec/Java_home)
6
zagyi

Einfache Lösung

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

Ich denke, Sie können versuchen, jdk nicht jre zu installieren. Durch die Installation von jdk wird Java in/usr/bin/Java ersetzt und alle Bibliotheken funktionieren einwandfrei.

3
ParaDevil

Falls Sie mehrere Java-Versionen auf Ihrem Computer haben und diese zur Laufzeit dynamisch auswählen möchten, d. H.

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 folgendermaßen 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

Nach dem Speichern der Datei bitte ausführensource /etc/profile sollte es funktionieren. Hier sind 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 Speicherorten befindet.

3
nxhoaf

Dies geschieht, weil Ihr .bash_profile Änderungen nicht widerspiegelt. Um dies zu reflektieren, verwenden Sie einfach den folgenden Befehl

$ source .bash_profile
1
Raghav Sharma

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
1
Hefewe1zen

ich habe dieses Problem behoben, indem ich Yosemite erneut installierte und dann die Java-Version auf dem Terminal (Java-Version) und (Javac-Version). überprüfte ) Bibliothek> Java> javavirtualmachine> Ihre javac-aktuelle Version. Sie müssen sich an Java home wenden.

0
AJAY

Überprüfen Sie die installierten JDK-Versionen:

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

In Ihrem ~/.bashrc export Java_HOME geben Sie nun die Version an:

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)
0
Miguel Mota

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
0
Andy Tran

Bei der Installation über verteiltes JDK DMG von der Oracle-Site wird alles für mich automatisch aktualisiert. Ich habe (in El Capitan) gesehen, dass Updates durch System Preferences > Java Aktualisierungen vorgenommen haben, die sich jedoch nicht auf die Befehlszeile beziehen. Die Installation über DMG erledigt die Aufgabe.

0
Santanu Karar

Da ich dieses Problem noch nicht gesehen habe, nehme ich eine Ahnung - 

Können Sie das bitte versuchen: 

Wo zeigt der Softlink "Java_home": 

ls -lrt /usr/libexec/Java_home

Ausgabe: (stunted) 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 produziert 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

Darauf basierend könnten wir einen Hinweis erhalten, um fortzufahren.

0
user1428716

Ich habe dieses Problem mit Sudo rm /usr/bin/Java behoben.

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 funktionierte nicht für mich, da ich Operation not permitted bekam. El Capitan schützt jetzt bestimmte Systemverzeichnisse im "rootless" -Modus (a.k.a. System Integrity Protection). Es ist auf macOS Sierra anwendbar und wahrscheinlich auf absehbare Zeit neue macOS-Versionen.

0
Charles Hamel