it-swarm.com.de

So installieren Sie Java 8 auf einem Mac

Ich möchte etwas mit dem neuesten JavaFX programmieren, das Java 8 erfordert. 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 dort gelandet 

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

aber frühere Versionen sind bei 

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

Nicht sicher, warum das neueste Installationsprogramm dies in /Library anstelle von /System/Library einfügt (noch was der Unterschied ist). Aber /usr/libexec/Java_home findet keine 1.8, daher funktionieren alle Beiträge, die ich zum Einstellen Ihrer aktuellen Java-Version gefunden habe, nicht. Ich habe versucht, einen symbolischen Link hinzuzufügen, damit es so aussieht, als sei 1.8 im Pfad /System/Library..., aber es hilft nicht. /usr/libexec/Java_home -V listet immer nur das alte Java 1.6 auf.

Ironischerweise zeigt die Systemsteuerung "Java" in den Systemeinstellungen nur Java 1.8!

Warum legt das Installationsprogramm von Oracle es nicht an den richtigen Ort? Und wie kann ich dieses Problem umgehen?

618
user3763100

Verlassen Sie sich nicht auf Oracle, um Java ordnungsgemäß auf Ihrem Mac zu installieren.

Verwenden Sie Homebrew . Dadurch wird das neueste JDK installiert:

brew cask install Java

Wenn Sie mehrere Java-Versionen auf Ihrem Mac verwalten möchten, sollten Sie jenv verwenden.

UPDATE: Nun, da Java 8 nicht mehr die aktuellste Version ist, wenn Sie möchten, dass Java 8 folgendermaßen installiert wird: 

brew tap caskroom/versions
brew cask install Java8

Um eine Liste aller älteren Java-Versionen zu erhalten: brew tap caskroom/versions und dann brew search Java verwenden.

Wir verwenden brew cask , da wir ansonsten das Oracle GUI-Installationsprogramm verwenden, das Java wahrscheinlich nicht ordnungsgemäß auf Ihrem Mac installiert. (Verwenden Sie Brew Cask Install APP, um GUI-Apps zu installieren; verwenden Sie Brew Install APP.) Java ist keine GUI-App. Sollte erfordert kein "Fass", aber zumindest Oracle ist konsistent.

1438
l3x

Für El Capitan , Sierra und High Sierra

Installieren und aktualisieren Sie zuerstbrewvom Terminal:

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

brew tap caskroom/versions

brew update

Java 8:

brew cask install Java8

Java Latest:

brew cask install Java
397
kavehmb

Ich habe das nur bei meinem MBP gemacht und musste es verwenden

$ brew tap caskroom/versions
$ brew cask install Java8

um Java8 zu installieren.

109
Jain Waldrip

Eine Option, die ich für das Ausführen von Anwendungen auf meinem lokalen Computer wirklich mag, ist die Verwendung von Docker. Sie können Ihre Anwendung einfach innerhalb des offiziellen JDK-Containers ausführen. Dies bedeutet, dass Sie sich keine Sorgen machen müssen, dass alles auf Ihrem lokalen Computer eingerichtet ist (oder dass Sie mehrere Versionen des JDK für verschiedene Anwendungen ausführen müssen).

Auch wenn dies bei Ihren aktuellen Installationsproblemen möglicherweise nicht hilfreich ist, ist dies eine Lösung, die bedeutet, dass Sie das Minenfeld von Problemen durchgehen können, die mit dem Versuch zusammenhängen, Java auf Ihrem Entwicklungscomputer korrekt auszuführen.

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 im Container ändern.
  3. Projektabhängigkeiten werden innerhalb des Containers installiert. Wenn Sie also Ihre Konfiguration durcheinander bringen, können Sie den Container einfach nuken und erneut starten. 

Ein sehr einfaches Beispiel: 

Erstellen Sie eine Dockerfile:

FROM Java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
  • Hier geben wir den Java-Container an, auf dem Version 8 des SDK ausgeführt wird (Java:8 - zur Verwendung von Java 7 können Sie einfach Folgendes angeben: Java:7
  • Wir bilden das lokale Verzeichnis mit dem Verzeichnis: /usr/src/myapp im Container ab

Erstellen Sie eine docker-compose.yml-Datei:

version: "2"

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

Nehmen wir an, wir haben diese Java-Datei: 

HelloWorld.Java

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

Wir haben also die folgende Dateistruktur:

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

Sie können verschiedene Java-Dinge ausführen wie:

compile:

docker-compose run --rm Java javac HelloWorld.Java 
  • Sie sollten beachten, dass die HelloWorld.class in Ihrem aktuellen Verzeichnis angezeigt wird (das liegt daran, dass wir das aktuelle Verzeichnis der Position innerhalb des Containers zugeordnet haben, in der sich unser Code befindet

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 innerhalb des Containers 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 wird.

Dies ist eine ziemlich coole Art und Weise, verschiedene Versionen von Java für verschiedene Apps auszuführen, ohne die lokalen Einstellungen komplett durcheinander zu bringen :).

Hier ist ein etwas komplexeres Beispiel, das Maven und eine einfache Spring-App hat

Haftungsausschluss:

51
toast38coza

Ich habe das gleiche Problem zu lösen, weil ich JDK8 installieren muss, um den Android SDK Manager auszuführen (weil es so aussieht, als würde er nicht mit JDK9 funktionieren) ... Aber ich sage Ihnen, wie ich alle Probleme auf einem Mac (Sierra).

Zuerst brauchen Sie brew mit Fass und jenv.

  1. Eine hilfreiche Anleitung finden Sie hier: Homebrew Cask-Installationshandbuch . Denken Sie daran, im Abfertigungssystem auf "Abstellraum/Versionen" zu tippen: brew tap caskroom/versions
  2. Danach installieren Sie jenv mit: brew install jenv
  3. Installieren Sie die gewünschte Version mit Fass brew cask install Java8 (oder Java7 oder Java, wenn Sie die neueste Version jdk9 installieren möchten).
  4. Als letzten Schritt müssen Sie konfigurieren, welche Version ausgeführt werden soll (und jenv die Verwaltung Ihres Java_HOME zulassen) jenv versions, um alle auf Ihrem Computer installierten Versionen aufzulisten. Aktivieren Sie dann die gewünschte Version mit jenv global [JDK_NAME_OF_LIST]

Weitere nützliche Informationen finden Sie hier zu diesem Github Gist brew-Java-and-jenv.md , auf diesem Blog Mehrere JDK auf einem Mac installieren und auf Jenv-Website

23

Java8 ist auf Homebrew nicht mehr verfügbar, brew install Java8 wird nicht funktionieren.

Verwenden Sie stattdessen:

brew cask install adoptopenjdk/openjdk/adoptopenjdk8

Siehe this commit für technische Details.

Bitte beachten Sie auch, dass möglicherweise Probleme mit Cask adoptopenjdk8 exists in multiple taps auftreten. 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, 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
21
Dave Kerr

braufass installieren Caskroom/Versionen/Java8

14
Arun

Verwenden Sie den Installer, Luke

Sie haben mehrere Quellen, um eine benutzerfreundliche Installations-App zu erhalten, mit der Sie Java auf Ihrem Mac installieren können. Andere Antworten, die Brew oder andere Ansätze nahelegen, erscheinen mir etwas extrem. Laden Sie einfach ein Mac-Installationsprogramm von einer vertrauenswürdigen Quelle herunter und führen Sie es aus.

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

flowchart for choosing a source for Java 11.

Der Ordner JavaVirtualMachines ist jetzt korrekt

Warum setzt Oracle's Installer es nicht dort ein, wo es wirklich hingeht? Und wie kann ich dieses Problem umgehen?

Kein Problem.

Der Ordner /Library/Java/JavaVirtualMachines/ Ist das neue Zuhause für JVM s auf macOS .

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, das Systemadministratorkennwort einzugeben, um die Entfernung abzuschließen.


Java 9 & 10 & 11

Im Jahr 2010 trat Apple dem OpenJDK project bei, zusammen mit Oracle , IBM , Red Hat , Azul und andere Java Anbieter. 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 gibt Apple keine eigene Mac-spezifische JVM mehr frei. Sie haben jetzt die Wahl des JVM-Anbieters. Builds stammen aus der OpenJDK-Codebasis.

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

Neue Release-Trittfrequenz

Beachten Sie, dass Oracle, das JCP und OpenJDK 2017 einen neuen Schnellzugplan angenommen haben, damit regelmäßig geplante Versionen von Java auf vorhersehbare Weise bereitgestellt werden.

In diesem Azul Systems-Blogbeitrag 2018-07 finden Sie viele Details: Eliminating Java Update Confusion von Simon Ritter .

Lesen Sie auch Java Is Still Free .

Anbieter

Eine ausführliche Liste der früheren und aktuellen JVM-Implementierungen finden Sie unter diese Seite bei Wikipedia .

Hier sind drei derzeit aktive Quellen, die ich kenne.

Oracle JVM

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 zusammengeführt in das OpenJDK -Projekt, das als Grundlage für ihre eigenen Markenimplementierungen von Java dient.

Ihr neuer Geschäftsplan für 2018 sieht vor, eine Oracle-Implementierung von Java gegen eine Gebühr in der Produktion und ohne Kosten 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 ihr Marken-Release mit dem OpenJDK-Release vergleichbar ist. Sie haben sogar ihre kommerziellen Add-Ons wie Flight Recorder an das OpenJDK-Projekt gespendet.

Zulu & Zing von Azul

Azul Systems bietet eine Vielzahl von JVM-Produkten.

  • Ihre Zulu -Linie basiert direkt auf OpenJDK und ist mit optionalen kostenpflichtigen Supportplänen kostenlos verfügbar.
  • Ihre Zing -Linie bietet kommerzielle JVM-Produkte, die mit alternativen technischen Implementierungen wie einem spezialisierten Garbage-Collector erweitert wurden.

Beide Produktlinien bieten Installer für macOS an.

Ich verwende derzeit Zulu für Java 10.0.1 unter macOS High Sierra mit IntelliJ 2018.2 und Vaadin 8 . I von dieser Seite heruntergeladen . Übrigens finde ich nicht Java-bezogene Elemente, die in den Apple Systemeinstellungen App installiert sind.

AdoptOpenJDK.net

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

  • Sie haben die Wahl zwischen HotSpot oder OpenJ9 .
  • Builds verfügbar für macOS, Linux und Windows.

OpenJ9 von Eclipse

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

Jetzt gesponsert von der Eclipse Foundation, mit Technologie und Unterstützung von IBM im Jahr 2017.

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


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.

Wenn Sie fertig sind, überprüfen Sie Ihre JVM-Installation durch:

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

Hängen Sie das .dmg-Image im Finder ab, nachdem Sie den Erfolg überprüft haben. Mülle dann die heruntergeladene .dmg-Datei in den Papierkorb.

12
Basil Bourque

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

Ich verwende 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 danach 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

11
Nathan Dunn

Wenn Sie mehrere Java-Versionen auf Ihrem Computer haben und diese zur Laufzeit dynamisch auswählen möchten, d. H. 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/profile-Inhalt ä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 und es sollte 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.

10
nxhoaf

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

brew update
brew tap caskroom/versions
brew cask install Java8

und überprüfen Sie mit dem Befehl

Java -version
9
TLbiz

Am besten verwenden Sie den Brew-Paketmanager, aber den Befehl

 brew cask install Java8

schlägt mit Fehler fehl:

Error: No available formula with the name "Java8" 

.__ Verwenden Sie also

brew cask install caskroom/versions/Java8

Wie habe ich "caskroom/versions/Java8" gefunden?

brew cask search Java8
7
Navjot Bhardwaj

Mit brauen

brew install Caskroom/cask/Java
7
Santhosh

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

Fass installieren:

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

So installieren Sie aktuelles Java:

$ brew cask install Java

So installieren Sie Java 8:

$ brew cask install Java8

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 sehen Sie das gesamte installierte 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 legen Sie Java_HOME fest:

$ jenv enable-plugin export
6
Lyncean Patel

Einfachster Weg -

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)

P.S - Was ist ein Braufass? Homebrew-Cask erweitert Homebrew und löst den Aufwand für die Ausführung eines zusätzlichen Befehls - „Zum Installieren dieses Symbols ziehen…“ nach der Installation einer Anwendung mit Homebrew .

3
sapy

Anscheinend hat noch niemand SDK-Mann ( https://sdkman.io/ ) erwähnt.

SKD man erlaubt die Installation mehrerer Java-Versionen auf dem Mac und das einfache Wechseln zwischen diesen Versionen. 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)
                                                                                                                                                                                                         ```


3
stderr

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

http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html

suchen Sie nach verfügbaren JVMs im Basisverzeichnis

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
2
vimal krishna

Wenn Sie esNICHTfür den persönlichen Gebrauch verwenden, sollten Sie stattdessen OpenJDK verwenden, um potenzielle Rechtsstreitigkeiten von Oracle zu vermeiden.

brew cask install adoptopenjdk8
2
Edmund Lee

Versuchen :

brühfass Java 8 installieren, es wird das folgende Ergebnis geben

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

Geben Sie als Nächstes Folgendes ein: brew cask install adoptopenjdk8 ---- Java 8 wird auf dem Mac installiert.

0
arg

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

https://sdkman.io/

0
saif ali