Java unter OS X 10.9 installieren (Mavericks)

321

Ich habe das JDK unter Mac OS X 10.8 (Mountain Lion) installiert . Als ich es auf Mac OS X 10.9 (Mavericks) aktualisiert und java -versionim Terminal ausgeführt habe, wurde Folgendes angezeigt :

Keine Java-Laufzeit vorhanden, Installation erforderlich.

Dann habe ich das JDK (1.7) manuell auf meinem Mac installiert. Es scheint, dass die Installation gut funktioniert hat. Als die Installation abgeschlossen war, öffnete ich das Terminal und tippte java -versionebenfalls. Es zeigte auch den gleichen Fehler:

Keine Java-Laufzeit vorhanden, Installation erforderlich.

Wie kann ich dieses Problem lösen?

user2909913
quelle
1
Ich weiß nicht, welches Problem es im Terminal gibt, aber ich führe Eclipse aus und alle Projekte werden in Außenseitern gut kompiliert
Sunny
1
Es scheint, dass der alte Java-Launcher nur JDK 1.6 unterstützt, aber bei Mavericks ist 1.6 standardmäßig nicht installiert.
Shawn
1
Sie haben Java 6 installiert, nicht Java 7, wie OP ursprünglich angedeutet hatte. Ich bin daran interessiert, wie diese Lösung erreicht wird. Außerdem muss es hier einen alternativen Ansatz geben, der direkt auf das Feedback vom Terminal eingeht.
Rondo
4
Dies ist großartig für Java 6, aber wie können Sie Java 7 zum Laufen bringen?
190290000 Rubelmann
2
Es wurde eine mögliche Antwort hinzugefügt, um Java 7 JRE zu installieren und im Terminal zum Laufen zu bringen
analog

Antworten:

279

Die neuen Mavericks (10.9) zeigten mir die "Requesting install", aber nichts passierte.

Die Lösung bestand darin, das offizielle Java-Paket für OS X manuell herunterzuladen und zu installieren Java für OS X 2013-005.

Update: Wie in den Kommentaren unten erwähnt, gibt es eine neuere Version desselben Pakets:

Java für OS X 2014-001

Java für OS X 2014-001 (Korrektur der Deadline oben)

Java für OS X 2014-001 enthält Installationsverbesserungen und ersetzt alle früheren Versionen von Java für OS X. Dieses Paket installiert dieselbe Version von Java 6, die in Java für OS X 2013-005 enthalten ist.

Kerl
quelle
Auch für mich. Eine andere Möglichkeit ist die Installation von Java von Oracle. Welches findet ihr besser? Oracle scheint Java schneller als Apple aktualisiert zu haben.
Ngoc Pham
2
Aber dieser gibt Ihnen JDK 6. Wie können wir JDK 6 direkt verwenden?
Shawn
2
@Shawn Apple deaktiviert bereits installiertes JDK 7. Aber Sie können einige FAQ erhalten und von hier installieren: java.com/de/download/faq/java_mac.xml, aber ich habe es nicht ausprobiert.
Guy
Wenn Sie sowohl Java6 als auch Java7 installiert haben, können Sie v6 in Ihrer Shell auswählen mit: export JAVA_HOME = / System / Library / Java / JavaVirtualMachines / 1.6.0.jdk / Contents / Home
Jürgen Strobel
1
Warum sollten Sie 32-Bit-Java unter einem 64-Bit-Betriebssystem verwenden? 64-Bit-Java ist unter Mavericks tatsächlich schneller als 32-Bit.
MiB
195

Wenn Sie nur die neueste offizielle JRE von Oracle installieren möchten, können Sie sie dort herunterladen, installieren und das neue JAVA_HOME im Terminal exportieren.

  • Öffnen Sie Ihr Terminal
  • java -version gibt Ihnen einen Fehler und ein Popup
  • Holen Sie sich das JRE-DMG unter http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • Es installieren
  • Geben Sie in Ihrem Terminal Folgendes ein: export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"
  • java -version jetzt gibt dir java version "1.7.0_45"

Das ist der sauberste Weg, den ich gefunden habe, um die neueste JRE zu installieren.

Sie können die export JAVA_HOMEZeile in Ihrem hinzufügen .bashrc, um sie javadauerhaft in Ihrem Terminal zu haben:

echo export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\" >> ~/.bashrc
analog
quelle
37
Ich denke, es klingt ein wenig faul, zu definieren JAVA_HOME, was eindeutig ein Browser-Plugin anstelle der echten VM ist. Wenn Sie die XCode-Befehlszeilentools installieren, erhalten Sie ein Tool zum Abrufen des richtigen Pfads /usr/libexec/java_home. Siehe developer.apple.com/library/mac/documentation/Darwin/Reference/… .
Ilkka
8
@Ilkka - es klingt faul, aber genau dort installiert sich Oracle JRE. Apples Java (das bei Java 6 stoppt) mischt sich nicht so gut mit Orakeln, wie man es gerne hätte
Orion Edwards
12
Ein Kollege von mir (der hier leider nicht den erforderlichen Ruf hat, um Kommentare hinzuzufügen) möchte hinzufügen, dass die Einstellung JAVA_HOME sein sollteexport JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
Stephan Windmüller
1
Ich habe jdk7u45 von Oracle installiert und verwende weiterhin den Export JAVA_HOME = $ (/ usr / libexec / java_home) in meinem Bash-Profil. jdk7u45 funktioniert sehr gut, einschließlich des Einstellungsfensters für das Java-System. Jetzt aktualisiere ich auf jdk7u51.
MiB
2
Ich musste export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"~ / .profile anstelle von ~ / .bashrc oder ~ / .bash_profile hinzufügen, um diese Arbeit zu erhalten.
LarS
64

Der richtige Ort zum Herunterladen des JDK für Java 7 ist Java SE Downloads .

Alle anderen oben angegebenen Links bieten, soweit ich das beurteilen kann, entweder die JRE- oder Java 6-Downloads (wenn Sie Eclipse oder andere IDEs wie IntelliJ IDEA ausführen möchten, benötigen Sie übrigens das JDK, nicht das JRE ).

In Bezug auf IntelliJ IDEA werden Sie weiterhin aufgefordert, Java 6 zu installieren, da anscheinend ein älterer Klassenladeprogramm oder ähnliches erforderlich ist. Befolgen Sie einfach die Anweisungen, wenn das Dialogfeld angezeigt wird, und das JDK 6 wird an der richtigen Stelle installiert.

Anschließend müssen Sie die sudo ln -snfin der obigen Antwort genannten Schritte ausführen:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents \
    /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

(hier kopiert, da erwähnt wurde, dass "oben" möglicherweise keinen Sinn ergibt, da die Antworten neu sortiert werden).

Ich habe auch festgelegt, dass ich JAVA_HOMEdarauf verweise, wo jdk_1.7.0_xx.jdkinstalliert wurde:

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

Dann füge das zu deinem hinzu PATH:

export PATH=$JAVA_HOME/bin:$PATH

Die Alternative besteht darin, mit Apples verrücktem Labyrinth von Hyperlinks herumzuspielen, aber ehrlich gesagt ist das Leben zu kurz, um sich darum zu kümmern.

Marco Massenzio
quelle
4
In meinem Kommentar zu einer anderen Antwort finden Sie einen besseren Weg, um diesen Weg zu finden.
Ilkka
1
Da diese Antwort mehr positive Stimmen hat, ist das Bit sudo ln -snfin der obigen Antwort nicht mehr korrekt. Das bezieht sich tatsächlich auf die Antwort von Herrn Ronald
Karthic Raghupathi
@KarthicRaghupathi Ich bin nicht sicher, ob ich den Kommentar vollständig verstehe (die Verwendung von thisund thatist etwas verwirrend), aber Sie benötigen immer noch einen Symlink vom Ort / Sytem / Library / etc zum tatsächlichen Ort, an dem Oracle die JVM installiert (/ Library / etc.) .) oder Anwendungen können die Java-Laufzeit nicht finden.
Marco Massenzio
@Marco Nun, da Sie es erwähnen, wenn ich meinen eigenen Kommentar lese, macht es nicht wirklich viel Sinn. :) Erlauben Sie mir zu klären. In Ihrer Antwort schreiben Sie "Danach müssen Sie die sudo ln -snfin der obigen Antwort genannten Schritte ausführen;". Die Antworten werden je nach Anzahl der Stimmen nach oben oder unten verschoben. Meine Absicht war es, nur einen direkten Verweis auf die Antwort zu geben, die den sudo ln -snfBefehl hatte.
Karthic Raghupathi
Bearbeitet - aber nicht wirklich sicher, ob die Neuordnung wirklich stattfindet: Sie scheinen alle dort zu sein, wo sie waren, unabhängig von den positiven Stimmen. NVM
Marco Massenzio
14

Ich habe das JDK 1.7 von Oracle heruntergeladen und installiert . In der Konsole / im Terminal funktioniert Java 7 einwandfrei.

Wenn ich ein Java-Programm (wie Eclipse ) über die GUI starte, erhalte ich:

Zum Öffnen von "Eclipse.app" benötigen Sie eine Java SE 6-Laufzeit. Möchten Sie jetzt eine installieren?

Da ich die alte Java-Version nicht installieren wollte, habe ich die folgende Problemumgehung verwendet:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

Credits an monkehWorks .

Herr Ronald
quelle
1
Ich muss verwenden, ln -snfweil ich Operation not permittedmitln -sf
Lars Blumberg
Thx, ich habe die Antwort bearbeitet und dem Befehl ln die Option -n hinzugefügt.
Herr Ronald
+1 Genau das, wonach ich gesucht habe. Vielen Dank! Die CLI erhielt nach der Installation den Verweis auf JDK 7. Dieser Schritt war jedoch erforderlich, damit die GUI-Apps das richtige JDK abrufen konnten.
Karthic Raghupathi
War hoffnungsvoll, aber es hat bei mir nicht funktioniert. Android Studio 0.3.2 besteht darauf, "Java 6 herunterzuladen", was ich nicht tun werde. Oracle Java 7 JDK ist installiert.
Akauppi
Sie benötigen eine 64-Bit-Version von Eclipse. Das 32-Bit benötigt Apple Java.
Thorbjørn Ravn Andersen
4

Dieser Fehler tritt auf, weil für die plist-Datei von IntelliJ IDEA Java Version 1.6 * erforderlich ist. Um dieses Problem zu lösen, ersetzen Sie 1.6 * durch 1.8 *.

<key>JVMOptions</key>
<dict>
    <key>ClassPath</key>
      ...

    <key>JVMVersion</key>
    <string>1.8*</string>

    <key>MainClass</key>
    <string>com.intellij.idea.Main</string>
    <key>Properties</key>
<dict>
Fabio Fumarola
quelle
Das hat es für mich getan. Mein Problem war, als ich auf osx 10.9 aktualisierte, konnte ich immer noch vom Terminal aus auf Java zugreifen und alles andere (einschließlich Eclipse funktionierte einwandfrei). Nur Android Studio hat diesen Fehler verursacht.
ucsunil
Dies hat bei mir unter OS X 10.10.1 nicht funktioniert. Es wird beanstandet, dass keine Version 1.8 verfügbar ist (auch wenn JRE 8 ordnungsgemäß installiert ist).
Emmanuel Bourg
Haben Sie überprüft, ob JAVA_HOME eingestellt ist?
Fabio Fumarola
3

Das OP implizierte, dass Java 7 die Notwendigkeit war. Und Java 6 wird tatsächlich nicht mehr "unterstützt", sodass 7 die Version ist, die Sie zu diesem Zeitpunkt installieren sollten, es sei denn, Sie haben Bedenken hinsichtlich einer älteren App.

Sie können es hier herunterladen : http://java.com/en/download/mac_download.jsp?locale=de

Rondo
quelle
Wir sollten nicht davon ausgehen, dass Apples aktuelle Distribution von Java 6 nicht unterstützt wird.
Graham Perrin
Ich habe das Wort "unterstützt" in Anführungszeichen gesetzt, um zu vermeiden, dass versucht wird, ein kompliziertes Problem herauszufiltern. Oracle berechnet Gebühren für Support von 6 ... und diese Supportgebühr würde logischerweise auch für Apple gelten. Apple ist also "allein" ohne Vertrag. Haben sie einen und planen, die Patches für MacOSX durchzuarbeiten? Ermöglicht der Vertrag weiterhin eine Weiterverteilung? Seit Apples letztem Update auf 6 gibt es zwei Java 7-Updates von Oracle. In der Vergangenheit tendieren sie dazu, schrittweise Versionen zu sperren. Annahme vielleicht; Eine sichere Annahme? Scheint so.
Rondo
3

Meine Erfahrung mit der Aktualisierung des Java SDK unter OS X 10.9 war viel einfacher.

Ich habe die neueste Version Java SE Development Kit 8von SE heruntergeladen und die .dmg-Datei installiert. Und beim Eingeben java -versiondes Terminals wurde Folgendes angezeigt:

Java-Version "1.8.0_11"

Java (TM) SE-Laufzeitumgebung (Build 1.8.0_11-b12)

64-Bit-Server-VM von Java HotSpot (TM) (Build 25.11-b03, gemischter Modus)

Muhammad Reda
quelle
1

Aus dem OP:

Ich habe es endlich von Java für OS X 2013-005 neu installiert. Es hat dieses Problem gelöst.

Eric Leschinski
quelle
1

Dieser Fehler bedeutet, dass Java nicht ordnungsgemäß installiert ist.

1) brew cask install java (No need to install cask separately it comes with brew)

2) java -version

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

PS - Was ist ein Braufass? Homebrew-Cask erweitert Homebrew und löst das Problem der Ausführung eines zusätzlichen Befehls - "Zum Installieren ziehen Sie dieses Symbol ...", nachdem Sie eine Anwendung mit Homebrew installiert haben .

NB - Dieses Problem ist nicht spezifisch für Mavericks. Sie erhalten fast das gesamte OS X, einschließlich EL Capitan.

sapy
quelle
0

Es ist nicht erforderlich, das JDK zu installieren, bei dem es sich um das Developer Kit handelt , sondern nur das JRE, bei dem es sich um die Laufzeitumgebung handelt .

dmz
quelle
6
Das stimmt. Apple bietet jedoch das JDK an, und die JRE von Oracle ist nur für das Internet-Plugin javaverfügbar. Der Befehl wird nicht systemweit automatisch verknüpft, sodass weiterhin die Meldung "Keine Java-Laufzeit vorhanden, Installation anfordern" angezeigt wird. wenn Sie java -versiondas Terminal eingeben.
Ngoc Pham