So installieren Sie Java 8 auf einem Mac

993

Ich möchte mit dem neuesten JavaFX programmieren, für das Java 8 erforderlich ist. Ich verwende IntelliJ 13 CE und Mac OS X 9 Mavericks. Ich habe das Java 8-Installationsprogramm von Oracle ausgeführt, und die Dateien sehen so aus, als wären sie bei gelandet

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk

aber frühere Versionen sind bei

/System/Library/Java/JavaFrameworks/jdk1.6....

Ich bin mir nicht sicher, warum das neueste Installationsprogramm dies /Libraryanstelle von /System/Library(oder was der Unterschied ist) einfügt. Aber /usr/libexec/java_homefindet 1.8 nicht, so dass alle Beiträge, die ich zum Einstellen Ihrer aktuellen Java-Version gefunden habe, nicht funktionieren. Ich habe versucht, einen symbolischen Link hinzuzufügen, damit es so aussieht, als wäre 1.8 im /System/Library...Pfad, aber es hilft nicht. /usr/libexec/java_home -Vlistet immer noch nur das alte Java 1.6 auf.

Ironischerweise zeigt das Kontrollfeld "Java" in den Systemeinstellungen nur Java 1.8 an!

Warum bringt das Oracle-Installationsprogramm es nicht dahin, wo es wirklich hingeht? Und wie kann ich dieses Problem umgehen?

user3763100
quelle
8
Es "geht wirklich" dahin, wo es gelandet ist - /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/. In der vorherigen Version wurden die von Apple bereitgestellten Java-Versionen verwendet, und da Apple kein Java mehr bereitstellt, hat sich der Installationsort geändert.
awksp

Antworten:

1888

Oracle hat eine schlechte Bilanz, um die Installation und Konfiguration von Java zu vereinfachen. Mit Homebrew kann das neueste OpenJDK (Java 14) jedoch installiert werden mit:

brew cask install java

Für die vielen Anwendungsfälle, die von einer älteren Version abhängen ( normalerweise Java 8), ermöglicht das AdoptOpenJDK- Projekt einen zusätzlichen Schritt.

brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk8

Bestehende Benutzer von Homebrew können Error: Cask adoptopenjdk8 exists in multiple tapsaufgrund vorheriger Problemumgehungen mit unterschiedlichen Anweisungen auf etwas stoßen . Dies kann gelöst werden, indem der Standort mit vollständig angegeben wird brew cask install adoptopenjdk/openjdk/adoptopenjdk8.

l3x
quelle
89
Ab Dezember 2015 ist es nicht mehr erforderlich, das Fass manuell zu installieren, da es jetzt Teil der Installation von Homebrew ist. Nachdem Sie Homebrew über aktualisiert haben brew update, können Sie es verwenden brew cask.
davetw12
63
Vielen Dank, es ist erstaunlich, wie schrecklich der Java-Installationsprozess mit den "offiziellen" Links / Dokumenten ist.
Enderland
15
@tandrewnichols Ich bin gerade brew cask install javaauf meinem El Capitan Mac gelaufen und es wird heruntergeladen jdk-8u112-macosx-x64.dmg.
Calrion
44
Error: Cask 'java8' is unavailable: No Cask with this name exists.
Elderry
87
Die Problemumgehung für jetzt ist zu brew tap homebrew/cask-versionsund verwendenbrew cask install homebrew/cask-versions/adoptopenjdk8
Sean Breckenridge
736

Hinweis: Oracle Java 8/9/10 steht nicht mehr zum öffentlichen Download zur Verfügung (Lizenzänderung).

Installieren und aktualisieren Sie zuerst Brew vom Terminal:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew tap homebrew/cask-versions

brew update

NEU ab Juni 2019

So installieren Sie die JDKs von AdoptOpenJDK:

brew tap adoptopenjdk/openjdk

brew cask install adoptopenjdk8
brew cask install adoptopenjdk9
brew cask install adoptopenjdk10
brew cask install adoptopenjdk11

ALT

Java 8:

brew cask install java8

Java Neueste:

brew cask install java
kavehmb
quelle
3
Interessant zu bemerken, dass dies für mich bei Mavericks nicht funktionierte, so dass es die Frage des OP nicht beantwortete, aber es funktionierte für mich bei Captain, also war es als Antwort nützlich.
Tommy
3
Ich habe Homebrew frisch auf einem neuen OS X El Capitan-Computer installiert und musste den brew tapBefehl in der obigen Antwort nicht ausführen . Der erste und dritte Befehl waren ausreichend.
Adil Hussain
14
Error: Cask 'java8' is unavailable: No Cask with this name exists.
user924
4
$ brew cask install adoptopenjdk8 Error: Cask adoptopenjdk8 exists in multiple taps: caskroom/versions/adoptopenjdk8 adoptopenjdk/openjdk/adoptopenjdk8. Ich muss verwendenbrew cask install adoptopenjdk/openjdk/adoptopenjdk8
Roottraveller
5
brew tap homebrew/cask-versionsund brew cask install adoptopenjdk8arbeitet für mich an Hi Sierra 10.13.6
xjlin0
135

Java8 ist auf Homebrew nicht mehr verfügbar und brew install java8funktioniert nicht.

Verwenden Sie stattdessen:

brew cask install adoptopenjdk/openjdk/adoptopenjdk8

In diesem Commit finden Sie technische Details.

Bitte beachten Sie auch, dass möglicherweise Probleme auftreten Cask adoptopenjdk8 exists in multiple taps. Dies ist ein bekanntes Problem, an dem derzeit gearbeitet wird. Sie können es hier sehen:

https://github.com/AdoptOpenJDK/homebrew-openjdk/issues/106

Für diejenigen, die die Details nicht durchgehen möchten, ist hier eine Zusammenfassung:

# To install JDK8
brew cask install adoptopenjdk/openjdk/adoptopenjdk8

# To be able to safely run 'brew cleanup'
brew untap adoptopenjdk/openjdk
brew untap caskroom/versions
brew cleanup
Dave Kerr
quelle
2
Gibt es einen Unterschied in der Verwendung AdoptOpenJDK/openjdkstatt in der Verwendunghomebrew/cask-versions/adoptopenjdk8
Sean Breckenridge
Ich erhalte Folgendes, wenn ich Ihre Antwort versuche: Cask adoptopenjdk8 existiert in mehreren Taps: caskroom / version / adoptopenjdk8 adoptopenjdk / openjdk / adoptopenjdk8
Koray Tugay
@KorayTugay Ich habe die Antwort aktualisiert, dies sollte Ihre Probleme lösen!
Dave Kerr
1
@SeanBreckenridge - die HomeBrew Team arbeiten daran, im Moment ist es wie AdoptOpenJDK sieht verwendet werden, aber es gibt immer noch eine gewisse Unsicherheit, finden Sie in der aktuell geöffneten Ausgabe github.com/AdoptOpenJDK/homebrew-openjdk/issues/106 für Details!
Dave Kerr
1
brew cask install homebrew/cask-versions/adoptopenjdk8arbeitete für mich
ProtoEvangelion
123

Ich habe das gerade auf meinem MBP gemacht und musste es benutzen

$ brew tap caskroom/versions
$ brew cask install java8

um java8 zu installieren.

Jain Waldrip
quelle
9
Es hat mir bei der Installation einer bestimmten Version von Java geholfen. Wenn Java 9 nicht mehr verfügbar ist, wird durch das Ausführen von "Brew Cask Install Java" Java 9 installiert. "Brew Cask Install Java8" funktionierte für mich nicht, bis ich "Brew Tap Caskroom / Versionen" ausführte.
unterbrechen
6
Ja, brew tap caskroom/versionsist erforderlich, bevor Sie Java8
Hendrix
11
oder nur brew install homebrew/cask-versions/java8um zu gewinnen!
Naruto Sempai
4
Aufgrund von Oracle-Lizenzänderungen ist es nicht mehr möglich, Java8 mit Brew zu installieren. Java8 steht nicht mehr zum öffentlichen Download zur Verfügung.
Marcelo Xavier
2
Unter stackoverflow.com/a/55775566/9306378 finden Sie Informationen zu Java8. Beachten Sie jedoch, dass hierfür OpenJDK verwendet wird.
Polpetta
62

Eine Option, die mir beim Ausführen von Anwendungen auf meinem lokalen Computer allmählich gefällt, ist die Verwendung von Docker. Sie können Ihre Anwendung einfach im offiziellen JDK-Container ausführen. Sie müssen sich also nicht darum kümmern, alles auf Ihrem lokalen Computer einzurichten (oder mehrere verschiedene Versionen des JDK für verschiedene Apps usw. ausführen).

Obwohl dies bei Ihren aktuellen Installationsproblemen möglicherweise nicht hilfreich ist, handelt es sich um eine Lösung, mit der Sie das Minenfeld der Probleme umgehen können, die mit dem Versuch verbunden sind, Java auf Ihrem Entwicklungscomputer ordnungsgemäß zum Laufen zu bringen!

Die Vorteile sind:

  1. Sie müssen keine Java-Version auf Ihrem lokalen Computer einrichten (Sie führen Java nur in einem Container aus, den Sie von Docker Hub abrufen).
  2. Sehr einfach, zu verschiedenen Java-Versionen zu wechseln, indem Sie einfach das Tag auf dem Container ändern.
  3. Projektabhängigkeiten werden im Container installiert. Wenn Sie also Ihre Konfiguration durcheinander bringen, können Sie den Container einfach nuklearisieren und erneut starten.

Ein sehr einfaches Beispiel:

Erstellen Sie eine Dockerfile:

FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
  • Hier spezifizieren wir die Java Containerversion läuft 8 des SDK ( java:8- verwenden Java 7, könnten Sie einfach angeben: java:7)
  • Wir ordnen das lokale Verzeichnis dem Verzeichnis zu: /usr/src/myappinnerhalb des Containers

Erstellen Sie eine docker-compose.ymlDatei:

version: "2"

services:
  java:
    build: .
    volumes:
      - .:/usr/src/myapp

Angenommen, wir haben diese Java-Datei:

HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {        
        System.out.println("Hello, World");
    }
}

Wir haben also folgende Dateistruktur:

.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.java

Sie können verschiedene Java-Dinge tun wie:

kompilieren:

docker-compose run --rm java javac HelloWorld.java 
  • Sie sollten beachten, dass die HelloWorld.class in Ihrem aktuellen Verzeichnis angezeigt wird (aus diesem Grund haben wir das aktuelle Verzeichnis dem Speicherort im Container zugeordnet, in dem unser Code vorhanden ist

Lauf:

docker-compose run --rm java java HelloWorld 
  • Hinweis: Wenn Sie dies zum ersten Mal ausführen, wird das Bild usw. abgerufen. Dies dauert eine Weile - dies geschieht nur beim ersten Mal
  • docker-compose run - führt einen Befehl aus dem Container aus
  • -rm Weist Docker an, den Container zu entfernen, sobald der Befehl ausgeführt wurde
  • java ist der Name des Dienstes / Containers (aus unserer Docker-Compose-Datei), für den dieser Befehl ausgeführt wird
  • Der Rest der Zeile ist der Befehl, der im Container ausgeführt werden soll.

Dies ist eine ziemlich coole Methode, um verschiedene Versionen von Java für verschiedene Apps auszuführen, ohne Ihr lokales Setup komplett durcheinander zu bringen :).

Hier ist ein etwas komplexeres Beispiel mit Maven und einer einfachen Spring-App

Haftungsausschluss:

toast38coza
quelle
2
Gutes Beispiel für die Verwendung von Docker. Ich bin mir nicht sicher, warum Sie zuvor eine Ablehnung erhalten haben.
Andrew
28
Ich würde mir das Downvote vorstellen, da dies nicht die Frage beantwortet, ob Java unter OS X / MacOS ausgeführt werden soll. Die Antwort "Wie mache ich das auf Plattform X?" Mit "Verwenden Sie einfach eine VM / Shim, um dies auf Plattform Y zu tun" ist nicht produktiv.
Whitfin
speziell für die native Java-Entwicklung (zB mit SWIG, JNI und LIBRARY_PATH)
Mizux
56

Annahme: Mac-Maschine und Sie haben Homebrew bereits installiert.

Installieren Sie das Fass (mit Homebrew 0.9.5 oder höher ist das Fass enthalten, überspringen Sie diesen Schritt):

$ brew tap caskroom/cask
$ brew tap caskroom/versions

So installieren Sie das neueste Java:

$ brew cask install java

So installieren Sie Java 8:

$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8

Wenn Sie mehrere Versionen installieren / verwalten möchten, können Sie 'jenv' verwenden:

Installieren und konfigurieren Sie jenv:

$ brew install jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

Fügen Sie das installierte Java zu jenv hinzu:

$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.11.0_2.jdk/Contents/Home

So zeigen Sie alle installierten Java:

$ jenv versions

Der obige Befehl gibt die Liste der installierten Java an:

* system (set by /Users/lyncean/.jenv/version)
1.8
1.8.0.202-ea
oracle64-1.8.0.202-ea

Konfigurieren Sie die Java-Version, die Sie verwenden möchten:

$ jenv global oracle64-1.6.0.39

So setzen Sie JAVA_HOME:

$ jenv enable-plugin export
Lyncean Patel
quelle
2
Beste Lösung! Vielen Dank!
viktorianer
1
Vielen Dank! genau das, wonach ich gesucht habe.
csomakk
Vielen Dank. Beginnt mit einer kurzen und präzisen Lösung und fährt mit einem weiteren nützlichen Tool fort: 'jenv' ist praktisch und fehlt in den meisten anderen Antworten. Hilfe beim Verpacken des Scala-Codes (2.12 / 2.13) im Jahr 2020.
22.
Funktioniert wie ein Zauber, brau Fass installieren adoptopenjdk / openjdk / adoptopenjdk8
jeadonara
25

Ich habe das gleiche Problem zu lösen, weil ich JDK8 installieren muss, um Android SDK Manager auszuführen (weil es scheint, dass das mit JDK9 nicht gut funktioniert). Ich erzähle Ihnen jedoch, wie ich alle Probleme auf einem Mac (Sierra) löse.

Zuerst müssen Sie mit Fass und Jenv brauen .

  1. Eine nützliche Anleitung finden Sie hier, Homebrew Cask Installation Guide . Denken Sie daran, im Terminal auf "Fassraum / Versionen" zu tippen: brew tap caskroom/versions
  2. Danach installieren Sie jenv mit: brew install jenv
  3. Installieren Sie, was auch immer Version , die Sie mit Fass wollen brew cask install java8(oder java7oder , javawenn Sie die neueste Version, jdk9 installieren)
  4. Der letzte Schritt besteht darin, zu konfigurieren, welche Version ausgeführt werden soll (und jenv Ihr JAVA_HOME verwalten zu lassen), jenv versionsum alle auf Ihrem Computer installierten Versionen aufzulisten und dann die gewünschte Version zu aktivierenjenv global [JDK_NAME_OF_LIST]

Weitere nützliche Informationen finden Sie hier auf dieser Github Gist Brew-java-and-jenv.md , in diesem Blog. Installieren Sie mehrere JDKs auf einem Mac und auf der Jenv-Website

Benedetto Abbenanti
quelle
jenv ist ganz einfach und super nützlich. Ich habe mehrere Projekte, die Java 8 und 11 benötigen
Nikhil Sahu
20
brew cask install caskroom/versions/java8
Arun
quelle
18

Wenn 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 /etc/profileInhalt ä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
Warum nicht einen Alias ​​für eine andere Version erstellen alias java8=/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin/java?
Cglacet
14

Es scheint, dass noch niemand SDK-Mann ( https://sdkman.io/ ) erwähnt hat.

Mit SKD man können mehrere Java-Versionen auf einem Mac installiert und einfach zwischen diesen Versionen gewechselt werden. Weitere Informationen finden Sie unter https://sdkman.io/usage .

Zum Beispiel:

$ sdk list java                                                                                                                                                                                                                       
================================================================================
Available Java Versions
================================================================================
   * 12.ea.20-open
     11.0.1-zulu
 > * 11.0.1-open
     10.0.2-zulu
     10.0.2-open
     9.0.7-zulu
     9.0.4-open
     8.0.192-zulu
     8.0.191-oracle
   + 8.0.181-oracle
     7.0.181-zulu
     1.0.0-rc-10-grl
     1.0.0-rc-9-grl
     1.0.0-rc-8-grl


================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

$ sdk install java 8.0.191-oracle

$ sdk use java 8.0.191-oracle

Using java version 8.0.191-oracle in this shell.                                                                                                                                                                                                      

$ java -version                                                                                                                                                                                                                        
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

$ sdk use java 11.0.1-open                                           

Using java version 11.0.1-open in this shell.

$ java -version                                                                                                                                                                                                                        openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
                                                                                                                                                                                                         ```

stderr
quelle
13

Ich habe Anwendungen, die sowohl Java 7 als auch Java verwenden und ständig hin und her gehen müssen.

Ich benutze dieses Skript von Johan:

http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/

Sie können es jetzt beim Start einstellen oder das Skript anschließend aufrufen.
Installieren Sie das JDK für Mac.

Java 7

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Java 8

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


Aktualisierte Empfehlung !! ::

Verwenden Sie jenv https://www.jenv.be/ und homebrew.

Dann ist es gerecht jenv global oracle6401.6.0.39und gesetzt.

Nathan Dunn
quelle
1
+1: Ich benutze dieses Skript und ich stimme zu, es ist ziemlich nützlich für Entwickler, die mehrere Projekte haben, die unterschiedliche Versionen von Java erfordern.
Barclay
8
Es ist wirklich nicht erforderlich, Skripte festzulegen, solange Sie nur eine bestimmte Version systemweit verwenden müssen. Grundsätzlich müssen Sie nur zu Ihrem ~/.bashrcoder ~/.bash_profile: export JAVA_HOME = "/ usr / libexec / java_home -v 1.8" hinzufügen und Ihr hinzufügen $JAVA_HOME/bin, $PATHwenn das Java-Installationsprogramm dies noch nicht getan hat. (HINWEIS: Ersetzen Sie doppelte Anführungszeichen durch Backticks für / usr / libexec / java_home. In Kommentaren können keine wörtlichen Backticks eingegeben werden.)
ccpizza
Wenn Sie Java 7 (neben Java 8) über Homebrew installieren möchten, brew tap caskroom/versionsfolgt der Befehl brew cask install java7.
icfantv
2
jenv ist ein sehr praktisches Tool zum Verwalten mehrerer Java-Versionen, entweder global oder lokal pro Verzeichnis.
Christian Long
12

Benutze den Installer, Luke

Andere Antworten, die darauf hindeuten, dass der Homebrew- Paketmanager etwas extrem erscheint. Ich bin sicher, Homebrew hat einige gute Verwendungsmöglichkeiten. Um Java einfach auszuführen, ist die Installation von Homebrew ein unnötiger zusätzlicher Schritt. Wenn Sie nur Java ausführen möchten, laden Sie einfach ein Mac-Installationsprogramm von einer vertrauenswürdigen Quelle herunter.

Sie haben mehrere Quellen, um eine benutzerfreundliche Installations-App zu erhalten, mit der Sie Java auf Ihrem Mac installieren können. Führen Sie das Installationsprogramm auf Ihrem Mac aus, genau wie bei vielen anderen Apps.

Hier ist ein Flussdiagramm zum Auffinden einer Java 11-Quelle, von denen einige auch Java 8 anbieten.

Flussdiagramm, das Sie bei der Auswahl eines Anbieters für eine Java 11-Implementierung unterstützt

Laden Sie ein Installationsprogramm von einem Anbieter wie AdoptOpenJDK.net herunter.

Download-Seite bei AdoptOpenJDK.net

Führen Sie das Installationsprogramm aus.

Screenshot des laufenden Installationsprogramms

JavaVirtualMachines Ordner ist jetzt korrekt

Warum bringt das Oracle-Installationsprogramm es nicht dahin, wo es wirklich hingeht? Und wie kann ich dieses Problem umgehen?

Kein Problem.

Der Ordner /Library/Java/JavaVirtualMachines/ist das neue Zuhause für JVMs unter macOS .

Screenshot des Ordners "/ Library / Java / JavaVirtualMachines /" im Finder

Verwenden Sie zum Installieren einer JVM ein Installationsprogramm (siehe unten).

Verwenden Sie zum Deinstallieren einfach den Finder, um eine JVM aus diesem Ordner zu löschen. Sie werden aufgefordert, ein Systemadministratorkennwort einzugeben, um das Entfernen abzuschließen.


Java 9 & 10 & 11

Bereits 2010 trat Apple zusammen mit Oracle , IBM , Red Hat , Azul und anderen Java-Anbietern dem OpenJDK- Projekt bei . Jedes Mitglied trägt Quellcode, Tests und Feedback zur einheitlichen OpenJDK-Codebasis bei.

Apple hat den größten Teil seines Mac-spezifischen Codes für seine JVM beigesteuert. Jetzt veröffentlicht Apple keine eigene Mac-spezifische JVM mehr. Sie haben jetzt die Wahl zwischen einem JVM-Lieferanten, dessen Builds aus der OpenJDK-Codebasis stammen.

Sie finden den Quellcode unter: http://openjdk.java.net

Neuerscheinungskadenz

Beachten Sie, dass Oracle, JCP und OpenJDK 2017 einen neuen Plan für den schnellen Release-Zug verabschiedet haben, mit dem regelmäßig geplante Java-Versionen auf vorhersehbare Weise bereitgestellt werden können.

In diesem Blogbeitrag von Azul Systems für 2018-07 finden Sie viele Details zur Beseitigung der Verwirrung bei Java-Updates von Simon Ritter .

Lesen Sie auch Java ist immer noch kostenlos .

Anbieter

Eine ziemlich vollständige Liste vergangener und aktueller JVM-Implementierungen finden Sie auf dieser Seite bei Wikipedia .

Hier finden Sie eine Diskussion einiger Anbieter. Weitere Anbieter finden Sie im obigen Flussdiagramm

Oracle JDK

Oracle bietet JDK- und JRE-Installationsprogramme für mehrere Plattformen, einschließlich macOS.

Im Laufe der Jahre seit der Übernahme von Sun hat Oracle die besten Teile der beiden JVM-Engines HotSpot und JRocket kombiniert und in das OpenJDK- Projekt integriert, das als Grundlage für ihre eigenen Markenimplementierungen von Java dient.

Der neue Geschäftsplan für 2018 sieht vor, eine Implementierung von Java unter der Marke Oracle gegen eine Gebühr in der Produktion und kostenlos für die Verwendung in Entwicklung / Test / Demo bereitzustellen. Für die Unterstützung früherer Versionen ist ein kostenpflichtiges Supportprogramm erforderlich. Sie haben ihre Absicht erklärt, dass ihre Markenversion mit der OpenJDK-Version übereinstimmen soll. Sie haben sogar ihre kommerziellen Add-Ons wie Flight Recorder für das OpenJDK-Projekt gespendet .

Oracle veröffentlicht auch einen OpenJDK-Build ohne Unterstützung: http://jdk.java.net/

Oracle hat ein spezielles JDK, GraalVM , erstellt .

Zulu & Zing von Azul

Azul Systems bietet eine Vielzahl von JVM-Produkten an.

  • Ihre ZuluLinie basiert direkt auf OpenJDK und ist kostenlos mit optionalen bezahlten Supportplänen erhältlich.
  • Ihre ZingLinie bietet kommerzielle JVM-Produkte, die durch alternative technische Implementierungen wie einen spezialisierten Müllsammler erweitert wurden .

Beide Linien bieten Installationsprogramme für macOS.

Ich verwende derzeit Zulu für Java 10.0.1 unter macOS High Sierra mit IntelliJ 2018.2 und Vaadin 8 . Ich habe von dieser Seite heruntergeladen . By the way, ich nicht finde keinen Java-bezogene Artikel auf dem Apple installierte Systemeinstellungen App.

AdoptOpenJDK.net

AdoptOpenJDK ist eine von der Community geleitete Aktion zum Erstellen von Binärdateien der OpenJDK-Quelle. Sie beabsichtigen, im Laufe der Zeit Updates anzubieten, die von Community-Mitgliedern gespendet wurden.

  • Die Wahl der beiden HotSpot oder OpenJ9 Motor.
  • Builds für MacOS, Linux und Windows verfügbar.

OpenJ9 von Eclipse

Das OpenJ9- Projekt ist eine weitere Implementierung der JVM-Engine, eine Alternative zu HotSpot .

Jetzt gesponsert von der Eclipse Foundation, mit Technologie und Unterstützung, die IBM 2017 gespendet hat.

Für vorgefertigte Binärdateien verweisen sie auf das oben erwähnte AdoptOpenJDK- Projekt.

Motivationen bei der Auswahl eines Anbieters für Java.png


Wie installiert man

Die von Oracle oder Azul bereitgestellten Installationsprogramme sind äußerst einfach zu bedienen. Führen Sie einfach die Installations-App auf Ihrem Mac aus. Ein Fenster zeigt den Fortschritt der Installation an.

Überprüfen Sie nach Abschluss Ihrer JVM-Installation Folgendes:

  • Besuchen Sie den /Library/Java/JavaVirtualMachines/Ordner, um ein Element für die neue JVM anzuzeigen.
  • Führen Sie eine Konsole wie Terminal.app aus und geben Sie Folgendes ein java -version, um die Marke und die Versionsnummer Ihrer JVM anzuzeigen.

Hängen Sie nach Überprüfung des Erfolgs das Dmg-Image im Finder ab. Dann werfen Sie die heruntergeladene .dmg-Datei in den Papierkorb.

Basil Bourque
quelle
11

Führen Sie diese Befehle auf dem Mac High Sierra aus

brew update
brew tap caskroom/versions
brew cask install java8

und mit Befehl prüfen

java -version
TLbiz
quelle
Erhalten dieses:Error: Download failed on Cask 'java8' with message: Download failed: https://download.oracle.com/otn-pub/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-macosx-x64.dmg
Siddhartha
7

Mit Gebräu

brew install Caskroom/cask/java
Santhosh
quelle
7

Am besten verwenden Sie den Brew Package Manager, aber den Befehl

 brew cask install java8

schlägt mit Fehler fehl:

Error: No available formula with the name "java8" 

Also benutze

brew cask install caskroom/versions/java8

Wie habe ich "caskroom / version / java8" gefunden: mit dem Befehl "Brew Search":

brew cask search java8
Navjot Bhardwaj
quelle
7

Wenn Sie es NICHT für den persönlichen Gebrauch verwenden, möchten Sie möglicherweise stattdessen OpenJDK verwenden, um mögliche Rechtsstreitigkeiten von Oracle zu vermeiden.

brew cask install adoptopenjdk8
Edmund Lee
quelle
find / usr / local / Homebrew / Library / Taps / | grep -i jdk | xargs rm -v wenn Sie passieren, erhalten Sie den Fehler "Fehler: Fass adoptopenjdk8 existiert in mehreren Taps:" ...
Yordan Georgiev
5

Wenn Sie auf einem Mac arbeiten, ist Homebrew der richtige Weg, um Dinge zu installieren.

Es scheint, dass Version 8 nicht mehr die neueste ist, daher ist sie nicht mit der Standardeinstellung verfügbar brew cask install java.

Stattdessen habe ich Folgendes geschafft:

brew install homebrew/cask-versions/

Wenn dies fehlschlägt, versuchen Sie es einfach direkt mit dem nächsten:

brew install homebrew/cask-versions/adoptopenjdk8

Test mit brew cask listoderjava -version

Anas
quelle
+1, das funktioniert bei mir unter macOS 10.12.6 Sierra. (Oder brauen Fass installieren adoptopenjdk / openjdk / adoptopenjdk8)
McAllister Bowman
+1 Die erste ist fehlgeschlagen (Fehler: Keine verfügbare Formel mit dem Namen "homebrew / cask-version /"), aber die zweite schien zu funktionieren. Die Antwort wurde aktualisiert, um zu vermeiden, dass Menschen mit dem ersten Fehler abgeschreckt werden.
Dennis Jaheruddin
4

Am einfachsten ist es, die dmg-Datei von der folgenden Site herunterzuladen und per Doppelklick zu installieren

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Suchen Sie im Home-Verzeichnis nach verfügbaren JVMs

ls -al /Library/Java/JavaVirtualMachines

und aktualisieren Sie das .bash_profile mit der relevanten Version

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

und schlussendlich

source ~/.bash_profile
vimal krishna
quelle
3

Mit Homebrew installieren

Die vor dem 3. Oktober 2018 in Homebrew Cask verfügbare Java-Version war in der Tat die Oracle JVM. Jetzt wurde es jedoch auf OpenJDK aktualisiert. Stellen Sie sicher, dass Sie Homebrew aktualisieren. Anschließend wird die neueste für die Installation verfügbare Version angezeigt.

1. Installieren Sie Homebrew, falls Sie dies noch nicht getan haben. Stellen Sie sicher, dass es aktualisiert wird:

brew update

2. Fügen Sie den Fasshahn hinzu, falls Sie dies noch nicht getan haben (oder ältere Java-Versionen mit Schritt 3 nicht mehr sehen):

brew tap homebrew/cask-versions

3. Fügen Sie für die AdoptOpenJDK-Versionen diesen Tipp hinzu:

brew tap adoptopenjdk/openjdk

Diese Fässer ändern häufig ihre Java-Versionen, und es gibt möglicherweise andere Abgriffe mit zusätzlichen Java-Versionen.

4. Suchen Sie nach installierbaren Versionen:

brew search java 

oder für AdoptOpenJDK-Versionen:

brew search jdk     

5. Überprüfen Sie die Details der zu installierenden Version:

brew cask info java

oder für die AdoptOpenJDK-Version:

brew cask info adoptopenjdk

6. Installieren Sie eine bestimmte Version des JDK, z. B. java11, adoptopenjdk8 oder nur Java oder adoptopenjdk für die aktuelle Version. Zum Beispiel:

**brew cask install java**

**brew cask install java8**

**brew cask install java11**

Sie können auch den vollständig qualifizierten Pfad zu älteren Versionen verwenden:

brew cask install homebrew/cask-versions/java11
Dean Jain
quelle
Vermutlich habe ich etwas falsch gemacht, aber beim Versuch, Java8 zu machen, ist eine Fehlermeldung aufgetreten: Fehler: Fass 'Java8' ist nicht verfügbar: Es gibt kein Fass mit diesem Namen.
Dennis Jaheruddin
2

Sie können dies versuchen:

$ brew search jdk
$ brew cask install homebrew/cask-versions/adoptopenjdk8
$ /usr/libexec/java_home

 

Geek
quelle
2

Einfachster Weg

1) brew cask install java

2) java -version

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

PS - Cask ist eine Erweiterung von Homebrew, die große Mac-Binärdateien und grafische Anwendungen verwalten soll, jedoch die Homebrew-Oberfläche verwendet. Siehe auch diese Antwort auf Apple StackExchange.

sapy
quelle
Es wird immer die neueste Version installiert
Ray Garner
1

Versuchen :

Brew Cask Install Java 8 ,, es wird das folgende Ergebnis geben

8tracksradiohelper adoptopenjdk8 amitv87-pip corretto8 icons8 vmware-fusion8 x48 zulu8

Als nächstes geben Sie ein: Brew Cask Install adoptopenjdk8 ---- Java 8 wird auf dem Mac installiert.

args
quelle
0

Ich würde vorschlagen, den SDK-Mann zu verwenden, der die Version (vorübergehend und dauerhaft) recht einfach ändern kann und auch andere SDKs bereitstellt. Ich benutze den SDK-Mann seit mehr als einem Jahr.

https://sdkman.io/

saif ali
quelle
Tipp für sdkman.io! Ich habe das gesehen, weil der Thread so lang war, aber ich konnte das Ende lesen. Zu Ihrer Information, dieser Tipp ist auch über stackoverflow.com/a/54101167/242110
AnneTheAgile
-4

Die folgenden Schritte haben bei mir funktioniert.

1) Deinstallieren Sie alle JDKS

Kopieren Sie im Terminalfenster den folgenden Befehl und fügen Sie ihn ein:

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane

2) Installieren Sie APPLE jdk.

https://support.apple.com/kb/DL1572?locale=de_DE

3) Laden Sie das neueste JDK von Oracle herunter und installieren Sie es. Für mich war es JDK 1.82

http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

Das ist alles, was es wie ein Zauber wirken wird.

sembian
quelle