Wie verwende ich JDK 7 unter Mac OSX?

107

Ich möchte die WatchService-API wie in diesem Link erwähnt verwenden: http://download.oracle.com/javase/tutorial/essential/io/notification.html

Nachdem ich mich umgesehen hatte, stellte ich fest, dass WatchService Teil der NIO-Klasse ist, die für JDK 7 geplant ist. Es handelt sich also um eine Beta-Klasse. Das ist gut.

http://jdk7.java.net/download.html enthält das JDK, das ich heruntergeladen und extrahiert habe. Ich habe ein paar Ordner. Ich weiß nicht, was ich mit ihnen anfangen soll.

Dann las ich noch etwas herum und stellte fest, dass eine nette Gruppe von Leuten JDK 7 als Binärdatei erstellt hat, damit jemand wie ich es einfach installieren kann. Es heißt Open JDK: http://code.google.com/p/openjdk-osx-build/

Also habe ich die .dmg-Datei heruntergeladen und installiert. Dann öffne ich "Java Preference" und sehe, dass OpenJDK7 verfügbar ist.

Jetzt habe ich das Gefühl, dass ich die WatchService-API ausprobieren kann. Aus dem Tutorial im ersten Link gab der Autor eine Java-Datei an, um sie zuerst zu testen und sicherzustellen, dass sie ausgeführt wird. Hier ist der Link zur Datei: http://download.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java

Also starte ich Eclipse (eigentlich verwende ich STS) und erstelle ein neues Java-Projekt und wähle JaveSE-1.7 in "JRE verwenden einer Ausführungsumgebung:". Unter dem Ordner src habe ich die Datei WatchDir.java kopiert und eingefügt.

Und ich sehe immer noch Tonnen von roten Linien. Alle "import.java.nio. *" Sind rot und ich kann es nicht als Java-App ausführen.

Was muss ich tun?

okysabeni
quelle
Können Sie es auf der Konsole ausführen und kompilieren?
Meister
Du meinst: $ javac WatchDir.java und dann $ Java WatchDir? Ich werde das versuchen. Vielen Dank! Obwohl ich es gerne in Eclipse IDE verfügbar hätte.
Okysabeni
1
Ab heute gibt es eine offizielle Oracle-Version - Java SE 7u4
mmmmmm
Stellen Sie sicher, dass Sie 64-Bit-Eclipse verwenden. Hatte kein Glück 32bit eins auf 1.7 jvm mit irgendwelchen Optionen laufen zu lassen.
TuxSlayer
Update: Java 7 ist jetzt am Ende der Lebensdauer . Weitere Informationen zu den LTS-Versionen (Long Term Support) von Java finden Sie unter: Installieren von Java 8 auf Mac und Beziehen von Java 11 für MacOS? .
Basil Bourque

Antworten:

61

Oracle hat JDK 7 für OS X veröffentlicht .

Mukund
quelle
Ich werde die Antwort mit den neuesten Informationen aktualisieren. Bitte lassen Sie mich wissen, wenn dies nicht die richtige Antwort ist. Vielen Dank.
Okysabeni
@ Yko - schauen Sie bei BasilBourque für die vollständigsten Informationen (oder meine für die erste Oracle JDK7 Version 4)
mmmmmm
12
Beachten Sie, dass ich /Library/Java/JavaVirtualMachines/1.7.0.jdk"Java SE 7" ausführen und auf der Registerkarte "Allgemein" an den Anfang der Liste ziehen musste, damit Anwendungen Java 1.7 von Oracle zugunsten von Java 1.6 von Apple verwenden . Dies verweist auch javacauf die Java 1.7-Version, wenn das Terminal ausgeführt wird.
Sschuberth
2
Das JDK7 von Oracle funktioniert nicht mit Snow Leopard. Es heißt, es wird nur Lion unterstützt.
Sanghyun Lee
@Sangdol - Ja, die Java-Implementierung von Oracle läuft nur unter Lion und höher. Wie in meiner Antwort auf diese Frage erwähnt.
Basil Bourque
88

So habe ich 1.7 dazu gebracht, mit Eclipse zu arbeiten. Ich hoffe, es hilft.

  1. Ich habe das neueste OpenJDK 1.7 Universal (32/64 Bit) JDK vom Mac OS / X-Zweig von http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html heruntergeladen
  2. kopierte das jdk nach / Library / Java / JavaVirtualMachines / neben dem Standard 1.6.0
  3. Unter Eclipse> Einstellungen> Java> Installierte JREs fügen Sie eine neue vom Typ MacOS X VM hinzu und legen die Startseite als /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home fest und nennen Java SE 7 (OpenJDK)
  4. Klicken Sie auf Fertig stellen
  5. Legen Sie die hinzugefügte JRE als Standard fest

das sollte es sein :)

Vektorgröße
quelle
danke mein elcipse hat komplett aufgehängt .. also habe ich versucht sdk 1.7 zu verwenden hat perfekt funktioniert! : =)
cV2
1
Dieses Projekt (openjdk-osx-build) wurde beendet und bietet keine Downloads mehr an.
aroth
Schritt 2 kann einfach sein: Führen Sie downladed jdk-7u40-macosx-x64.dmg aus und es wird automatisch eine Datei zum Pfad hinzugefügt
Michal
Wenn Sie Eclipse eine installierte JRE hinzufügen, kann Eclipse auch nach installierten JREs "suchen". So fand ich meine bestehende Installation von 1.7 JDK.
Jvriesem
Beachten Sie, dass das Oracle JDK 1.7-Installationsprogramm die VM für Sie in / Library / Java / JavaVirtualMachines / ablegt (März 2014)
Chris Thorne
55

Java 9, 10, 11

Vor Jahren trat Apple dem OpenJDK- Projekt bei und übertrug seinen ehemals proprietären macOS-spezifischen JVM-Code als kostenloses Open Source. Apple stellte den Vertrieb seiner eigenen Marke JVM / JDK ein und stützte sich auf die Markenversionen von Oracle, um eine Version für macOS aufzunehmen.

Oracle hat kürzlich angekündigt, seine JVM-Version der Marke Oracle auf Parität mit dem OpenJDK-Projekt mit praktisch derselben Codebasis zu bringen. Das Unternehmen spendete sogar seine zuvor kommerziellen Tools Flight Recorder & Mission Control für das OpenJDK-Projekt. Dies ist Teil der Umstellung auf einen neuen Schnellplan für die vorhersehbare geplante Versionierung von Java und OpenJDK. Insbesondere werden die Fristen für kostenlose öffentliche Updates jetzt verkürzt. Siehe diese Ankündigung 2017-09 und diesen Beitrag von Mark Reinhold .

Infolgedessen haben MacOS-Benutzer von Java die Wahl zwischen verschiedenen Anbietern für eine Java-Implementierung. Derzeit basieren mindestens drei Quellen auf OpenJDK für macOS:

  • Oracle-Versionen von JDK und JRE mit optionaler kostenpflichtiger Unterstützung.
  • Veröffentlichung von Azul Systems :
    • Zulu- Reihe von kostenlosen JVMs mit optionaler kostenpflichtiger Unterstützung.
    • Zing- Reihe von kommerziellen JVMs mit besonderen Merkmalen wie einem alternativen Garbage-Collector.
  • OpenJDK-Quellcode , eigene Kompilierung und Installation (für die meisten von uns vielleicht nicht praktikabel).

In der Zwischenzeit spendete IBM Code für eine JVM an die Eclipse Foundation, die jetzt im OpenJ9- Projekt enthalten ist. Ich frage mich, ob sie möglicherweise auch eine MacOS-Version unterstützen, obwohl es noch zu früh ist, dies zu beurteilen.

Persönlich verwende ich derzeit die Zulu- Version von Java 10.0.1 von Azul unter macOS High Sierra erfolgreich mit IntelliJ 2018.2, um Java-gestützte Webanwendungen mit Vaadin zu erstellen .

Einbau / Ausbau

Sowohl Oracle als auch Azul bieten äußerst benutzerfreundliche Installationsprogramme für die Installation von JVM / JDK auf Ihrem Mac. Überprüfen Sie Ihre Installation, indem Sie die Datei Terminal.app (oder eine gleichwertige Datei) eingeben und ausführen:

java -version

Sie finden die Java-Installationen in diesem Ordner im Stammverzeichnis Ihres Laufwerks (nicht in Ihrem Basisordner):

/ Library / Java / JavaVirtualMachines

Jede Version von jedem Anbieter befindet sich dort in einem beschrifteten verschachtelten Ordner. Sie können jede Installation einfach löschen, indem Sie den verschachtelten Ordner für diese Version löschen und Ihr Systemkennwort eingeben, wenn Sie dazu aufgefordert werden.

Java 8

Sie können das Java Development Kit (JDK) für Java 8 für die unterstützten Versionen von Mac OS X herunterladen :

  • Berglöwe (10.8.3+)
  • Außenseiter (10.9)
  • Yosemite (10.10)
  • El Capitan (10.11)

Jede von Ihnen installierte Version von JVM finden Sie hier:

/Library/Java/JavaVirtualMachines

Weitere Anweisungen und häufig gestellte Fragen finden Sie in diesem Oracle-Handbuch .

Java 7

Für jede Version von Java 7 seit Update 4 wurde neben den anderen Plattformen eine Mac-Version bereitgestellt. Läuft auf Macs mit 64-Bit-Hardware unter Lion (10.7.3+), Mountain Lion (10.8.3+) und Mavericks (10.9.x).

Oracle kündigte die offizielle Veröffentlichung des JDK für Java SE 7 Update 4 unter Mac OS X (Lion) am 26.04.2012 an. Die auf dieser Seite beschriebenen Tricks sind nicht mehr erforderlich .

Die Installation ist gemäß diesen Anweisungen einfach :

  1. Laden Sie von der üblichen Stelle auf der Oracle-Website herunter .
  2. Montieren Sie das DMG.
  3. Führen Sie das Installationsprogramm aus.

Diese Version weist einige Einschränkungen auf, insbesondere die mangelnde Unterstützung für Java Web Start und das Java Plugin für Webbrowser. Diese Unterstützung wird später in diesem Jahr erwartet.

Lesen Sie nach der Installation das JDK für Mac ReadMe. Wenn Sie möchten, dass Java 7 die Standardeinstellung ist, ziehen Sie es vor allem an den Anfang der Liste in der Java-Einstellungen- App, die sich in Ihrem Dienstprogrammordner befindet.

Mac OS X unterstützt problemlos mehrere JVMs gleichzeitig. Jeder ist jetzt hier zu finden:

/Library/Java/JavaVirtualMachines

Herzlichen Glückwunsch an die Apple & Oracle-Teams zu ihrer Leistung. Dieser Geek wird begeistert sein, wenn Mac OS X als " Certified System Configuration " aufgeführt wird.

Tipp: Zum Starten von Eclipse auf einem Mac mit Java nur 7 installiert ist , öffnen Sie die Alias - Datei mit dem Namen Eclipse statt der Datei mit dem Namen Eclipse.app .

Java 6

Apple bietet weiterhin eine aktuelle Implementierung von Java 6 für alle Versionen von Mac OS X über Mountain Lion an.

Wenn Sie etwas tun, für das Java erforderlich ist, z. B. "java -version" in Terminal.app eingeben, wird ein Dialogfeld angezeigt, in dem Sie Java für Sie installieren können. Wenn Sie zustimmen, erfolgt die Installation automatisch ähnlich wie bei anderen "Software-Updates" von Apple.

An dieser Stelle ist Java installiert, anders als in Java 7 und 8:

/System/Library/Java/JavaVirtualMachines

Java 6 hat mit Oracle ab 2013-02 das Ende seiner Lebensdauer erreicht (es sei denn, Sie haben eine kommerzielle Supportvereinbarung mit Oracle). Sie sollten also auf Java 7 oder 8 umsteigen.

Neue Version testen

Geben Sie in Terminal.app ein, um java -versionzu überprüfen, welche Version die aktuelle Standardeinstellung ist.

Alte Versionen löschen

Nach der Installation einer neuen Version möchten Sie möglicherweise den oben beschriebenen Ordner besuchen, um alte Versionen zu löschen. Verschieben Sie den Ordner in den Papierkorb und geben Sie Ihr Systemkennwort ein, um den Umzug abzuschließen.


Übrigens bietet Apple eine Mailingliste für technische Probleme von Entwicklern im Zusammenhang mit Java unter OS X an.

Basil Bourque
quelle
Danke, das hat super für mich funktioniert. Müssen es auch in den Einstellungen ändern.
@ Tony: Ja, das Ändern Ihrer Einstellungen wird im 4. Absatz erwähnt.
Basil Bourque
Funktioniert nicht Ich führe das Installationsprogramm aus und es meldet "Erfolg", aber nichts scheint tatsächlich installiert zu werden. /System/Library/Java/JavaVirtualMachinesenthält nur Java 6 JDK.
aroth
4
@aroth - (a) Schau rein /Library/Java/JavaVirtualMachines(nicht /System). (b) Haben Sie die Installationsdokumente von Oracle gelesen ReadMeund eingestellt, Preferenceswie in meiner obigen Antwort beschrieben?
Basil Bourque
1
Mit Java 7 r21 sehe ich /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/. Der Zugriff auf die Java-Systemsteuerung erfolgt jetzt über die Systemeinstellungen (OSX 10.8.3)
Sofi Software LLC
17

Eine einfache Möglichkeit, Java 7 auf einem Mac zu installieren, ist die Verwendung von Homebrew dank des Homebrew Cask- Plugins (das jetzt standardmäßig installiert ist).

Führen Sie diesen Befehl aus, um Java 7 zu installieren:

brew cask install caskroom/versions/java7
Andrew
quelle
"Fehler: Kein Fass für Fassraum / Versionen / Java7 verfügbar"
jrochkind
@jrochkind Vielleicht bist du caskroom/versionsveraltet? Es ist definitiv hier: github.com/caskroom/homebrew-versions/blob/master/Casks/…
Andrew
@jrochkind Versuchen Sie es, brew tap caskroom/versionsbevor Sie den Installationsbefehl ausführen
Andrew
@jrochkind Wenn das nicht funktioniert, konsultieren Sie die Fassdokumentation oder reichen Sie ein Problem ein: github.com/caskroom/homebrew-cask
Andrew
13

Hol das Fass

brew tap caskroom/cask

Java7 installieren:

brew tap caskroom/versions
brew cask install java7

(Ich hatte Schwierigkeiten, den Download-Link von Java7 auf der Oracle-Website zu finden, da sie Java8 nur "empfehlen")

EDIT Januar 2018 (wie von Ankur angegeben ):

Verwenden Sie das Zulu7- Fass. Zulu ist eine zertifizierte Version von OpenJDK, die von Azul Systems hergestellt wird und für eine lange Zeit verfügbar sein sollte (sie bieten sogar noch JDK6-Builds an).

brew cask install caskroom/versions/zulu7
abe312
quelle
Die akzeptierte Antwort auf diese Frage ist veraltet. Dies scheint heutzutage der beste Weg zu sein, um Java 7 zu installieren.
Tim Dean
Dieses Fass wurde entfernt (siehe: github.com/caskroom/homebrew-versions/pull/3914 ). Die vorgeschlagene Alternative ist die Verwendung von Zulu7.
Ankur
9

Ich weiß, dass einige mich vielleicht dafür schlagen wollen, dass ich einen alten Beitrag wieder geöffnet habe, aber wenn Sie das glauben, hoffe ich nur, dass dies jemand anderem hilft, der versucht, JDK 7 unter Mac OS (mit IntelliJ) einzustellen.

Was ich getan habe, um dies auf meiner Maschine zum Laufen zu bringen, ist:

  • Befolgen Sie die Anweisungen auf dem Oracle JDK7 Mac OS X-Port für die allgemeine Installation
  • Öffnen / Erstellen Sie in IntelliJ ein neues Projekt, damit Sie ein neues SDK hinzufügen können (Datei> Projektstruktur).
  • Wählen Sie Plattformeinstellungen> SDKs und drücken Sie das Pluszeichen "+", um ein neues SDK hinzuzufügen
  • Wählen Sie JSDK aus und navigieren Sie zu / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home. Verwechseln Sie es nicht mit / Users / YOUR_USERNAME / Library / Java / . Dadurch werden 4 JARs aus dem Verzeichnis "lib" (dt.jar, jconsole.jar, sa-jdi.jar und tools.jar) verknüpft.
  • Sie müssen außerdem JARs aus / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib (charsets.jar, jce.jar, JObjC.jar, jsse.jar, Management-Agent) hinzufügen .jar, resources.jar und rt.jar)
peter_budo
quelle
6

Möglicherweise müssen Sie das JDK noch zu Eclipse (STS) hinzufügen. Nur weil sich das JDK auf dem System befindet, bedeutet dies nicht, dass Eclipse weiß, wo es zu finden ist.

Gehen Sie zu Einstellungen> Java> Installierte JREs

Wenn für das 1.7 JDK kein Eintrag vorhanden ist, fügen Sie ihn hinzu. Sie müssen Eclipse darauf verweisen, wo Sie Ihr 1.7 JDK installiert haben.

Wenn Eclipse keine JRE finden kann, die mit 1.7 kompatibel ist, wird vermutlich nur Ihre Standard-JRE verwendet, und das zeigt wahrscheinlich immer noch auf Java 1.6, was zu Ihren roten, schnörkellosen Linien führen würde.

Jon Quarfoth
quelle
Guter Anruf! Aber ich brauche ein bisschen weitere Anleitung. Ich gehe unter Installierte JREs -> Hinzufügen und zeige auf ... / jdk1.7.0 / jre und es wurden eine Reihe von JAR-Dateien gefunden. Ich klicke auf Fertig stellen. Versucht glücklich zu bauen, aber jetzt heißt es ... / jdk1.7.0 / jre / bin / java: Binärdatei kann nicht ausgeführt werden. Was bedeutet das?
Okysabeni
Ich bin mir nicht wirklich sicher. Sie können versuchen, Eclipse auf das Basis-JDK-Verzeichnis anstatt auf das JRE-Verzeichnis zu richten. Ich denke, so habe ich es normalerweise unter Windows gemacht, obwohl ich das Standard-JDK auf meinem Mac noch nie ausgeschaltet habe. Wenn dies nicht funktioniert, können Sie versuchen, eine andere Distribution von JDK 7 zu installieren. Auf der openjdk-osx-build-Site waren einige andere verfügbar. Vielleicht haben Sie eine ausgewählt, die nicht mit Ihrem System kompatibel ist?
Jon Quarfoth
Ich habe das versucht. Es gibt mir den Fehler "Ziel ist kein JDK-Stammverzeichnis.
Systembibliothek
6

Nach der Installation von 1.7jdk von Oracle habe ich meine Bash-Skripte geändert, um Folgendes hinzuzufügen:

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

und dann lief java -versiondie richtige Version.

Dustin Getz
quelle
1

Die Anweisungen von peter_budo haben perfekt funktioniert. Ich musste die Gläser unter / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib / zu meinen IntelliJ-Projektbibliotheken hinzufügen . Jetzt funktioniert es wie ein Zauber. Beachten Sie, dass ich meine IDE selbst nicht brauchte, um unter 1.7 zu laufen. Vielmehr musste ich nur in der Lage sein, 1.7 zu kompilieren und auszuführen. Ich werde höchstwahrscheinlich weiterhin Apples JRE zum Ausführen der IDE verwenden, da diese in Bezug auf Grafikroutinen (Swing, AWT) wahrscheinlich stabiler ist. Wie beim OP war ich sehr daran interessiert, die neue NIO2-API zu testen. Sieht soweit gut aus. Danke, Peter.

user1092781
quelle
1

Bei Lion funktionierte das JDK7_u17 von Oracle aus und bearbeitete dann ~ / .bash_profile so, dass es Folgendes enthielt: export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.7.0_13.jdk / Contents / Home

user1015892
quelle
0

Ich habe auf Yosemite aktualisiert und Android Studio hat meine Projekte aufgrund des folgenden Fehlers nicht bereinigt oder auf einem virtuellen oder realen Gerät ausgeführt:

Failed to complete Gradle execution.Cause:Supplied javaHome is not a valid folder. You supplied: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Nach einigen Recherchen und Fehlerbehebungen stellte ich fest, dass die JDK-Datei, auf die unter "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home" verwiesen wurde, nicht vorhanden war. In "/ System / Library / Java" fehlten alle "JavaVirtualMachines / 1.6.0.jdk / Contents / Home". Also habe ich "JavaVirtualMachines / 1.6.0.jdk / Contents / Home" von "/ Library / Java /" nach "/ System / Library / Java /" kopiert und ch ching! Ich war wieder im Geschäft.

Glutfeuer
quelle
0

Verwenden Sie jetzt den Befehl Verwenden

Update 2020: 04

So installieren Sie Java7 mit Homebrew:

brew tap homebrew/cask-versions
brew cask install java7

Ich hoffe das hilft.

Superup
quelle