Wie installiere ich Java unter Mac OSX und erlaube einen Versionswechsel?

313

Ich möchte OpenJDK Java unter Mac OSX installieren und es mit anderen JDKs zusammenarbeiten lassen, da es sich um eine neuere Version handelt. Derzeit habe ich tar.gz heruntergeladen und in meinen Pfad eingefügt, aber das ist schwer zu pflegen.

Die einzige andere Installation, bei der ich festgestellt habe, dass mehr Dinge automatisch erledigt werden, ist die Installation über das Homebrew-Fass. Es sieht aus wie nur die aktuelle Version auch:

brew cask info java

Zeigt an:

java: 13,33: 5b8a42f3905b406298b72d750b6919f6
https://openjdk.java.net/

Also kann ich es von dort installieren, aber was dann? Bin ich nur mit der neuen Version fest?

Jayson Minard
quelle
Können wir die Frage-Tags nur auf eine einzige Version beschränken? Da gibt es sowieso kein solches versionsspezifisches Installationsskript / Schritte. Dies ist eine allgemeine (nicht versionenspezifische) Frage, die ausreichen kann, um nur mit Java-11 gekennzeichnet zu werden , da ich davon ausgehe , dass dies der Ort ist, an dem die Leute nach den Vorschlägen und Fragen suchen würden.
Naman
Skripte in den Antworten enthalten bestimmte Versionen, obwohl es einfach ist, sie für andere Versionen zu interpretieren. Es ist aber auch Teil dessen, wonach Community-Mitglieder suchen. Daher ist es hilfreich, ihnen zu helfen, schnell die richtigen Antworten zu finden, indem sie auf aktualisierte und moderne Antworten aufmerksam machen und sich von alten veralteten Themen der Versionen 6 und 8 unterscheiden. Die neueste stabile Version und die neueste Version zu haben, halte ich für vernünftige Tags.
Jayson Minard
Ich würde wahrscheinlich empfehlen, jenv zu verwenden, um mehrere Java-Versionen zu verwalten.
Paranza

Antworten:

718

Hinweis: Diese Lösungen funktionieren für verschiedene Java-Versionen, einschließlich Java 8 und das neue Java 13, sowie für alle anderen früheren Java-Versionen, die von den aufgeführten Versionsmanagern abgedeckt werden. Dies umfasst alternative JDKs von OpenJDK, Oracle, IBM, Azul, Amazon Correto, Graal und anderen. Arbeiten Sie einfach mit Java 7, Java 8, Java 9, Java 10, Java 11, Java 12 und Java 13!

Sie haben einige Möglichkeiten, wie Sie die Installation durchführen und die JDK-Umschaltung verwalten können. Die Installation kann durch Homebrew, SDKMAN , Jabba oder eine manuelle Installation erfolgen. Das Umschalten kann von JEnv , SDKMAN , Jabba oder manuell durch Einstellen erfolgen JAVA_HOME. All dies wird unten beschrieben.


Installation

Installieren Sie zunächst Java mit einer beliebigen Methode, einschließlich Homebrew, SDKMAN oder einer manuellen Installation der Datei tar.gz. Der Vorteil einer manuellen Installation besteht darin, dass der Speicherort des JDK an einem für Mac OSX standardisierten Speicherort gespeichert werden kann.

Mit SDKMAN installieren

Dies ist insofern ein einfaches Modell, als es sowohl die Installation als auch den Versionswechsel übernimmt, mit der Einschränkung, dass das JDK in einem nicht standardmäßigen Verzeichnis installiert wird.

< siehe unten "Installieren und Wechseln von Versionen mit SDKMAN" >

Installieren Sie mit Jabba

Dies ist auch insofern ein einfaches Modell, als sowohl die Installation als auch der Versionswechsel von demselben Tool ausgeführt werden. Die Installationen werden in einem nicht standardmäßigen Verzeichnis durchgeführt.

< siehe unten "Installieren und Wechseln von Versionen mit Jabba" >

Manuelle Installation von der OpenJDK-Downloadseite:

  1. Laden Sie OpenJDK für Mac OSX von http://jdk.java.net/ herunter (zum Beispiel Java 13 ).

  2. Deaktivieren Sie den OpenJDK-Tar und legen Sie den resultierenden Ordner (dh jdk-13.jdk) in Ihrem /Library/Java/JavaVirtualMachines/Ordner ab, da dies der Standardspeicherort für JDK-Installationen ist. Sie können auch überall installieren, wo Sie möchten.

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

    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.

  3. Suchen Sie nach installierbaren Versionen:

    brew search java   

    oder für AdoptOpenJDK-Versionen:

    brew search jdk     
  4. Überprüfen Sie die Details der zu installierenden Version:

    brew cask info java

    oder für die AdoptOpenJDK-Version:

    brew cask info adoptopenjdk
  5. Installieren Sie eine bestimmte Version des JDK wie java11, adoptopenjdk8oder einfach javaoder adoptopenjdkfür den Strom. Zum Beispiel:

    brew cask install java

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

    brew cask install homebrew/cask-versions/java11

Und diese werden an /Library/Java/JavaVirtualMachines/dem traditionellen Speicherort installiert, der unter Mac OS X erwartet wird.

Weitere Installationsoptionen:

Einige andere Geschmacksrichtungen von openJDK sind:

Java Zulu- zertifizierte Builds von Azul Systems für OpenJDK können gemäß den Anweisungen auf ihrer Website installiert werden.

Zulu® ist eine zertifizierte Version von OpenJDK, die vollständig dem Java SE-Standard entspricht. Zulu ist 100% Open Source und kann kostenlos heruntergeladen werden. Jetzt können Java-Entwickler, Systemadministratoren und Endbenutzer die vollen Vorteile von Open Source Java mit Bereitstellungsflexibilität und Kontrolle über das Upgrade-Timing nutzen.

Amazon Correto OpenJDK-Builds bieten ein einfach zu verwendendes Installationspaket für Version 8 oder Version 11 (andere Versionen sind in Vorbereitung) und werden im Standardverzeichnis/Library/Java/JavaVirtualMachines/unter Mac OS X installiert.

Amazon Corretto ist eine kostenlose, plattformübergreifende und produktionsbereite Distribution des Open Java Development Kit (OpenJDK). Corretto bietet langfristigen Support, der Leistungsverbesserungen und Sicherheitskorrekturen umfasst. Amazon führt Corretto intern auf Tausenden von Produktionsservices aus und Corretto ist als mit dem Java SE-Standard kompatibel zertifiziert. Mit Corretto können Sie Java-Anwendungen auf gängigen Betriebssystemen wie Linux, Windows und macOS entwickeln und ausführen.


Wo ist mein JDK?!?!

Verwenden Sie Folgendes, um Speicherorte zuvor installierter Java JDKs zu finden, die an den Standardsystemstandorten installiert sind:

/usr/libexec/java_home -V

Übereinstimmende virtuelle Java-Maschinen (6):
13, x86_64: "OpenJDK 13" /Library/Java/JavaVirtualMachines/openjdk-13.jdk/Contents/Home 12, x86_64: "OpenJDK 12" / Library / Java / JavaVirtualMachines / jdk-12 .jdk / Contents / Home
11, x86_64: "Java SE 11" /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
10.0.2, x86_64: "Java SE 10.0.2" / Library / Java / JavaVirtualMachines /jdk-10.0.2.jdk/Contents/Home
9, x86_64: "Java SE 9" /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
1.8.0_144, x86_64: "Java SE 8" / Library /Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

Sie können auch nur den Speicherort einer bestimmten Java-Version mit angeben -v. Zum Beispiel für Java 13:

/usr/libexec/java_home -v 13

/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home

Die Position der installierten JDKs zu kennen, ist auch hilfreich, wenn Sie Tools wie JEnv verwenden, eine lokale Installation zu SDKMAN hinzufügen oder ein System-JDK in Jabba verknüpfen - und Sie müssen wissen, wo Sie sie finden.

Wenn Sie JDKs finden müssen, die von anderen Tools installiert wurden, überprüfen Sie diese Speicherorte:

  • SDKMAN wird auf installiert ~/.sdkman/candidates/java/
  • Jabba installiert zu ~/.jabba/jdk

Versionen manuell wechseln

Die ausführbare Java-Datei ist ein Wrapper, der das in JDK konfigurierte JAVA_HOMEJDK verwendet. Sie können dies also ändern, um auch zu ändern, welches JDK verwendet wird.

Wenn Sie beispielsweise JDK 13 installiert oder entpackt /Library/Java/JavaVirtualMachines/jdk-13.jdkhaben, um die höchste Versionsnummer zu erhalten, sollte dies bereits die Standardeinstellung sein. Andernfalls können Sie einfach Folgendes festlegen:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home

Und jetzt wird jede ausführbare Java-Datei im Pfad dies sehen und das richtige JDK verwenden.

Wenn Sie das /usr/libexec/java_homezuvor beschriebene Dienstprogramm verwenden, können Sie Aliase erstellen oder Befehle zum Ändern von Java-Versionen ausführen, indem Sie die Speicherorte verschiedener JDK-Installationen identifizieren. Erstellen Sie beispielsweise Shell-Aliase in Ihrem .profileoder .bash_profileändern JAVA_HOMESie diese für Sie:

export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_9_HOME=$(/usr/libexec/java_home -v9)
export JAVA_10_HOME=$(/usr/libexec/java_home -v10)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_12_HOME=$(/usr/libexec/java_home -v12)
export JAVA_13_HOME=$(/usr/libexec/java_home -v13)

alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java9='export JAVA_HOME=$JAVA_9_HOME'
alias java10='export JAVA_HOME=$JAVA_10_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java12='export JAVA_HOME=$JAVA_12_HOME'
alias java13='export JAVA_HOME=$JAVA_13_HOME'

# default to Java 13
java13

Verwenden Sie dann zum Ändern der Versionen einfach den Alias.

java8
java -version

Java-Version "1.8.0_144"

Natürlich JAVA_HOMEfunktioniert die manuelle Einstellung auch!


Versionswechsel mit JEnv

JEnv erwartet, dass die Java- JDKs bereits auf dem Computer vorhanden sind und sich an einem beliebigen Ort befinden können. In der Regel finden Sie installierte Java-JDKs in/Library/Java/JavaVirtualMachines/. Mit JEnv können Sie die globale Version von Java, eine für die aktuelle Shell, und eine lokale Version pro Verzeichnis festlegen. Dies ist praktisch, wenn für einige Projekte andere Versionen als für andere erforderlich sind.

  1. Installieren Sie JEnv, falls Sie dies noch nicht getan haben. Anweisungen auf der Website http://www.jenv.be/ zur manuellen Installation oder Verwendung von Homebrew.

  2. Fügen Sie JEnv eine beliebige Java-Version hinzu ( passen Sie das Verzeichnis an, wenn Sie es an einer anderen Stelle abgelegt haben ):

    jenv add /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
  3. Stellen Sie Ihre globale Version mit diesem Befehl ein:

    jenv global 13

Sie können auf jenv addähnliche Weise auch andere vorhandene Versionen hinzufügen und die verfügbaren auflisten. Zum Beispiel Java 8:

jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home 
jenv versions

Weitere Befehle finden Sie in den JEnv-Dokumenten . Sie können jetzt jederzeit zwischen Java-Versionen (Oracle, OpenJDK usw.) wechseln, entweder für das gesamte System, für Shells oder pro lokalem Verzeichnis.

Um die Verwaltung JAVA_HOMEbei der Verwendung von JEnv zu erleichtern, können Sie das Export-Plugin hinzufügen , um dies für Sie zu tun.

$ jenv enable-plugin export
  You may restart your session to activate jenv export plugin echo export plugin activated

Das Export-Plugin wird möglicherweise nicht angepasst, JAVA_HOMEwenn es bereits festgelegt ist. Daher müssen Sie diese Variable möglicherweise in Ihrem Profil löschen, damit sie von JEnv verwaltet werden kann.

Sie können auch jenv exec <command> <parms...>einzelne Befehle ausführen JAVA_HOMEund PATHfür diesen einen Befehl richtig festlegen, einschließlich des Öffnens einer anderen Shell.


Versionen mit SDKMAN installieren und wechseln

SDKMAN ist etwas anders und übernimmt sowohl die Installation als auch das Switching. SDKMAN platziert die installierten JDKs auch in einem eigenen Verzeichnisbaum~/.sdkman/candidates/java. Mit SDKMAN können Sie eine globale Standardversion und eine für die aktuelle Shell spezifische Version festlegen.

  1. Installieren Sie SDKMAN von https://sdkman.io/install

  2. Listen Sie die verfügbaren Java-Versionen auf, um sicherzustellen, dass Sie die Versions-ID kennen

    sdk list java
  3. Installieren Sie eine dieser Versionen, z. B. Java 13:

    sdk install java 13.0.0-open 
  4. Machen Sie 13 zur Standardversion:

    sdk default java 13.0.0-open

    Oder wechseln Sie für die Sitzung zu 13:

    sdk use java 13.0.0-open

Wenn Sie verfügbare Versionen für die Installation mit dem Befehl list auflisten, sehen Sie eine Vielzahl von Java-Distributionen:

sdk list java

Und installieren Sie zusätzliche Versionen wie JDK 8:

sdk install java 8.0.181-oracle

SDKMAN kann mit zuvor installierten vorhandenen Versionen arbeiten. Führen Sie einfach eine lokale Installation durch und geben Sie dabei Ihr eigenes Versionsetikett und den Speicherort des JDK an:

sdk install java my-local-13 /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home

Und benutze es frei:

sdk use java my-local-13

Weitere Informationen finden Sie im SDKMAN-Verwendungshandbuch sowie in anderen SDKs, die installiert und verwaltet werden können.

SDKMAN verwaltet Ihr PATHund JAVA_HOMEfür Sie automatisch, wenn Sie Versionen ändern.


Versionen mit Jabba installieren und wechseln

Jabba übernimmt sowohl die Installation als auch das Switching. Jabba platziert die installierten JDKs auch in einem eigenen Verzeichnisbaum~/.jabba/jdk.

  1. Installieren Sie Jabba, indem Sie den Anweisungen auf der Startseite folgen .

  2. Liste der verfügbaren JDKs

    jabba ls-remote
  3. Installieren Sie Java JDK 12

    jabba install [email protected]
  4. Benutze es:

    jabba use [email protected]

Sie können auch Versionsnamen aliasen, Links zu bereits installierten vorhandenen JDKs erstellen und eine Mischung aus interessanten JDKs wie GraalVM, Adopt JDK, IBM JDK und mehr finden. Die vollständige Bedienungsanleitung finden Sie auch auf der Homepage.

Jabba verwaltet Ihr PATHund JAVA_HOMEfür Sie automatisch, wenn Sie Versionen ändern.

Jayson Minard
quelle
2
Für die manuelle Installation denke ich, müssen Sie einstellen JAVA_HOME, um eine bestimmte Version auszuwählen, so etwas wie export JAVA_HOME=$(/usr/libexec/java_home -v <version>)in Ihrem.bash_profile
Peter Hull
@PeterHull Einige der Java-Versionsmanager möchten nicht JAVA_HOMEmanuell eingestellt haben und verwalten es selbst. JEnv wird es sicher nicht anpassen, wenn es zuvor eingestellt wurde, nicht sicher über Jabba und SDKMAN, aber sie werden diese Einstellung normalerweise verwalten. Nur eine manuelle Installation ohne Versionsumschaltung sollte diesen Wert jemals direkt einstellen.
Jayson Minard
Ich stimme Ihnen zu, es wäre gut, wenn Sie in Ihrer Antwort feststellen könnten, dass die ursprüngliche Frage zum Versionswechsel und zum Einstellen von JAVA_HOME die (einzige?) Möglichkeit ist, dies für die manuelle Installationsmethode zu tun.
Peter Hull
2
Java in Brew Cask wurde gestern, 3. Oktober 2018, in OpenJDK 11 geändert.
Xingang Huang
16
Möglicherweise die umfangreichste und nützlichste Antwort auf die Ausführung verschiedener JDKs unter MacOS, die viele verschiedene Ansätze abdecken, von denen einige mir noch nie begegnet waren.
Kevin Hooke
7

So habe ich es gemacht.

Schritt 1: Installieren Sie Java 11

Sie können Java 11 dmg für Mac hier herunterladen: https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html

Schritt 2: Nach der Installation von Java 11. Bestätigen Sie die Installation aller Versionen. Geben Sie den folgenden Befehl in Ihr Terminal ein.

/usr/libexec/java_home -V

Schritt 3: Bearbeiten Sie .bash_profile

sudo nano ~/.bash_profile

Schritt 4: Fügen Sie standardmäßig 11.0.1 hinzu. (Fügen Sie die folgende Zeile zur Datei bash_profile hinzu).

export JAVA_HOME=$(/usr/libexec/java_home -v 11.0.1)

zu einer beliebigen Version wechseln

export JAVA_HOME=$(/usr/libexec/java_home -v X.X.X)

Drücken Sie nun STRG + X, um die Bash zu beenden. Drücken Sie 'Y', um die Änderungen zu speichern.

Schritt 5: Laden Sie bash_profile neu

source ~/.bash_profile

Schritt 6: Bestätigen Sie die aktuelle Version von Java

java -version
VK321
quelle
Schöne Lösung. Aber was ist, wenn Java-Version immer noch auf 8 zeigt, während ich JAVA_HOME 11 exportiert habe?
AlexGera
1
Die Frage bezieht sich auf Open JDK, aber Sie haben stattdessen eine Verknüpfung zum Oracle JDK hergestellt. Das Open JDK scheint kein Installationsprogramm oder Installationsanweisungen zu haben.
Splaktar
1
Als Antwort auf @AlexGera - fügen Sie diese Zeile hinzu: export $ PATH = $ JAVA_HOME / bin: $ PATH
Fuad Efendi
6

Manuelles Wechseln der Systemstandardversion ohne Tools von Drittanbietern:

Wie in dieser älteren Antwort beschrieben , ist unter macOS /usr/bin/javaein Wrapper-Tool, das die Java-Version verwendet, auf die verwiesen wird, JAVA_HOMEoder wenn diese Variable nicht festgelegt ist, nach Java-Installationen unter sucht /Library/Java/JavaVirtualMachines/und die mit der höchsten Version verwendet. Die Versionen werden anhand der Contents/Info.plisteinzelnen Pakete ermittelt.

Mit diesem Wissen können Sie:

  • Steuern Sie, welche Version das System verwendet, indem Sie sie Info.plistin Versionen umbenennen, die Sie nicht als Standard verwenden möchten (diese Datei wird von der eigentlichen Java-Laufzeit selbst nicht verwendet).
  • Steuern Sie durch Festlegen, welche Version für bestimmte Aufgaben verwendet werden soll $JAVA_HOME

Ich habe gerade überprüft, dass dies bei OpenJDK & Mojave immer noch zutrifft.

Auf einem brandneuen System ist keine Java-Version installiert:

$ java -version
No Java runtime present, requesting install.

Brechen Sie dies ab und laden Sie OpenJDK 11 & 12ea unter https://jdk.java.net herunter . Installieren Sie OpenJDK11:

$ cd /Library/Java/JavaVirtualMachines/
$ sudo tar xzf ~/Downloads/openjdk-11.0.1_osx-x64_bin.tar.gz

System Java ist jetzt 11:

$ java -version
openjdk version "11.0.1" 2018-10-16
[...]

Installieren Sie OpenJDK12 (früher Zugriff):

$ sudo tar xzf ~/Downloads/openjdk-12-ea+17_osx-x64_bin.tar.gz 

System Java ist jetzt 12:

$ java -version
openjdk version "12-ea" 2019-03-19
[...]

Lassen Sie uns nun OpenJDK 12 vor dem System-Java-Wrapper "verstecken":

$ cd jdk-12.jdk/Contents/
$ sudo mv Info.plist Info.plist.disabled

System Java ist zurück auf 11:

$ java -version
openjdk version "11.0.1" 2018-10-16
[...]

Und Sie können Version 12 weiterhin pünktlich verwenden, indem Sie manuell Folgendes einstellen JAVA_HOME:

$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home
$ java -version
openjdk version "12-ea" 2019-03-19
[...]
Hugues M.
quelle
1
und es sollte jetzt auch mit AdoptOpenJDK Builds
Hugues M.
6

Wenn auf Ihrem Computer mehrere Versionen installiert sind, fügen Sie im Bash-Profil Folgendes hinzu:

export JAVA_HOME_7 = $ (/ usr / libexec / java_home -v1.7)

export JAVA_HOME_8 = $ (/ usr / libexec / java_home -v1.8)

export JAVA_HOME_9 = $ (/ usr / libexec / java_home -v9)

Und fügen Sie die folgenden Aliase hinzu:

alias java7 = 'exportiere JAVA_HOME = $ JAVA_HOME_7'

alias java8 = 'exportiere JAVA_HOME = $ JAVA_HOME_8'

alias java9 = 'exportiere JAVA_HOME = $ JAVA_HOME_9'

Und kann mithilfe des Alias ​​zur gewünschten Version wechseln:

Im Terminal:

~ >> java7 export JAVA_HOME=$JAVA_7_HOME

Lyncean Patel
quelle
Ja, dies wurde hier in einer anderen Antwort behandelt.
Jayson Minard
3

Eine andere Alternative ist die Verwendung von SDKMAN ! Siehe https://wimdeblauwe.wordpress.com/2018/09/26/switching-between-jdk-8-and-11-using-sdkman/

Installieren Sie zuerst SDKMAN: https://sdkman.io/install und dann ...

  1. Installieren Sie Oracle JDK 8 mit: sdk install java 8.0.181-oracle
  2. Installieren Sie OpenJDK 11 mit: sdk install java 11.0.0-open

Wechseln:

  • Wechseln Sie mit zu JDK 8 sdk use java 8.0.181-oracle
  • Wechseln Sie mit zu JDK 11 sdk use java 11.0.0-open

So legen Sie einen Standard fest:

  • Standardmäßig JDK 8 mit sdk default java 8.0.181-oracle
  • Standardmäßig JDK 11 mit sdk default java 11.0.0-open
Wim Deblauwe
quelle
3

Mit Homebrew und Jenv:

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

Fass einbauen:

$ 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 java8

So installieren Sie Java 9:

$ brew cask install java9

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

Obige Befehl wird die Liste der installierten Java geben:

* 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
Lyncean Patel
quelle
1
Error: caskroom/cask was moved. Tap homebrew/cask-cask instead, dannfatal: repository 'https://github.com/Homebrew/homebrew-cask-cask/' not found
ChumiestBucket
Was @ChumiestBucket sagte - diese Lösung hat mehrere Probleme
Javadba
1

IMHO, es ist nicht erforderlich, alle zusätzlichen Anwendungen / Pakete zu installieren.

Überprüfen Sie die verfügbaren Versionen mit dem folgenden Befehl:

> /usr/libexec/java_home -V
Matching Java Virtual Machines (8):
    11, x86_64: "Java SE 11-ea" /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
    10.0.2, x86_64: "Java SE 10.0.2"    /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
    9.0.1, x86_64:  "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
    1.8.0_181-zulu-8.31.0.1, x86_64:    "Zulu 8"    /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
    1.8.0_151, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
    1.7.0_80, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
    1.6.0_65-b14-468, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Wenn Sie nun Azul JDK 8 in der obigen Liste und NICHT Oracle SE SE von Oracle auswählen möchten, rufen Sie den folgenden Befehl auf:

> /usr/libexec/java_home -v 1.8.0_181
/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home

Zur Aufnahme 8 Oracle Java SE würden Sie den Befehl aufrufen:

> /usr/libexec/java_home -v 1.8.0_151
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home

Wie Sie sehen können, muss die angegebene Versionsnummer der eindeutige Satz von Zeichenfolgen sein: 1.8.0_181 vs 1.8.0_151

Ranganath Samudrala
quelle
Sollte das erste Beispiel nicht eine Versionszeichenfolge haben 1.8.0_181-zulu-8.31.0.1? oder ist es teilweise passend?
Jayson Minard
Dies ändert nichts an der Verwendung der Java-Version, sondern gibt nur den Speicherort des an JAVA_HOME. Das manuelle Umschalten mit diesen Befehlen wird in meiner anderen Antwort behandelt.
Jayson Minard