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:
Laden Sie OpenJDK für Mac OSX von http://jdk.java.net/ herunter (zum Beispiel Java 13 ).
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.
Installieren Sie Homebrew, falls Sie dies noch nicht getan haben. Stellen Sie sicher, dass es aktualisiert wird:
brew update
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.
Suchen Sie nach installierbaren Versionen:
brew search java
oder für AdoptOpenJDK-Versionen:
brew search jdk
Überprüfen Sie die Details der zu installierenden Version:
brew cask info java
oder für die AdoptOpenJDK-Version:
brew cask info adoptopenjdk
Installieren Sie eine bestimmte Version des JDK wie java11
, adoptopenjdk8
oder einfach java
oder adoptopenjdk
fü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_HOME
JDK 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.jdk
haben, 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_home
zuvor 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 .profile
oder .bash_profile
ändern JAVA_HOME
Sie 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_HOME
funktioniert 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.
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.
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
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_HOME
bei 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_HOME
wenn 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_HOME
und PATH
fü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.
Installieren Sie SDKMAN von https://sdkman.io/install
Listen Sie die verfügbaren Java-Versionen auf, um sicherzustellen, dass Sie die Versions-ID kennen
sdk list java
Installieren Sie eine dieser Versionen, z. B. Java 13:
sdk install java 13.0.0-open
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 PATH
und JAVA_HOME
fü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
.
Installieren Sie Jabba, indem Sie den Anweisungen auf der Startseite folgen .
Liste der verfügbaren JDKs
jabba ls-remote
Installieren Sie Java JDK 12
jabba install openjdk@1.12.0
Benutze es:
jabba use openjdk@1.12.0
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 PATH
und JAVA_HOME
für Sie automatisch, wenn Sie Versionen ändern.