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?
Antworten:
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:
Fügen Sie den Fasshahn hinzu, falls Sie dies noch nicht getan haben (oder ältere Java-Versionen mit Schritt 3 nicht mehr sehen):
Fügen Sie für die AdoptOpenJDK- Versionen diesen Tipp hinzu:
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:
oder für AdoptOpenJDK-Versionen:
Überprüfen Sie die Details der zu installierenden Version:
oder für die AdoptOpenJDK-Version:
Installieren Sie eine bestimmte Version des JDK wie
java11
,adoptopenjdk8
oder einfachjava
oderadoptopenjdk
für den Strom. Zum Beispiel:Sie können auch den vollständig qualifizierten Pfad zu älteren Versionen verwenden:
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.
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.Wo ist mein JDK?!?!
Verwenden Sie Folgendes, um Speicherorte zuvor installierter Java JDKs zu finden, die an den Standardsystemstandorten installiert sind:
Sie können auch nur den Speicherort einer bestimmten Java-Version mit angeben
-v
. Zum Beispiel für Java 13: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/candidates/java/
~/.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: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
ändernJAVA_HOME
Sie diese für Sie:Verwenden Sie dann zum Ändern der Versionen einfach den Alias.
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 ):
Stellen Sie Ihre globale Version mit diesem Befehl ein:
Sie können auf
jenv add
ähnliche Weise auch andere vorhandene Versionen hinzufügen und die verfügbaren auflisten. Zum Beispiel Java 8: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.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ührenJAVA_HOME
undPATH
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
Installieren Sie eine dieser Versionen, z. B. Java 13:
Machen Sie 13 zur Standardversion:
Oder wechseln Sie für die Sitzung zu 13:
Wenn Sie verfügbare Versionen für die Installation mit dem Befehl list auflisten, sehen Sie eine Vielzahl von Java-Distributionen:
Und installieren Sie zusätzliche Versionen wie JDK 8:
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:
Und benutze es frei:
Weitere Informationen finden Sie im SDKMAN-Verwendungshandbuch sowie in anderen SDKs, die installiert und verwaltet werden können.
SDKMAN verwaltet Ihr
PATH
undJAVA_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
Installieren Sie Java JDK 12
Benutze es:
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
undJAVA_HOME
für Sie automatisch, wenn Sie Versionen ändern.quelle
JAVA_HOME
, um eine bestimmte Version auszuwählen, so etwas wieexport JAVA_HOME=$(/usr/libexec/java_home -v <version>)
in Ihrem.bash_profile
JAVA_HOME
manuell 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.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.
Schritt 3: Bearbeiten Sie .bash_profile
Schritt 4: Fügen Sie standardmäßig 11.0.1 hinzu. (Fügen Sie die folgende Zeile zur Datei bash_profile hinzu).
zu einer beliebigen Version wechseln
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
Schritt 6: Bestätigen Sie die aktuelle Version von Java
quelle
Manuelles Wechseln der Systemstandardversion ohne Tools von Drittanbietern:
Wie in dieser älteren Antwort beschrieben , ist unter macOS
/usr/bin/java
ein Wrapper-Tool, das die Java-Version verwendet, auf die verwiesen wird,JAVA_HOME
oder 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 derContents/Info.plist
einzelnen Pakete ermittelt.Mit diesem Wissen können Sie:
Info.plist
in Versionen umbenennen, die Sie nicht als Standard verwenden möchten (diese Datei wird von der eigentlichen Java-Laufzeit selbst nicht verwendet).$JAVA_HOME
Ich habe gerade überprüft, dass dies bei OpenJDK & Mojave immer noch zutrifft.
Auf einem brandneuen System ist keine Java-Version installiert:
Brechen Sie dies ab und laden Sie OpenJDK 11 & 12ea unter https://jdk.java.net herunter . Installieren Sie OpenJDK11:
System Java ist jetzt 11:
Installieren Sie OpenJDK12 (früher Zugriff):
System Java ist jetzt 12:
Lassen Sie uns nun OpenJDK 12 vor dem System-Java-Wrapper "verstecken":
System Java ist zurück auf 11:
Und Sie können Version 12 weiterhin pünktlich verwenden, indem Sie manuell Folgendes einstellen
JAVA_HOME
:quelle
Wenn auf Ihrem Computer mehrere Versionen installiert sind, fügen Sie im Bash-Profil Folgendes hinzu:
Und fügen Sie die folgenden Aliase hinzu:
Und kann mithilfe des Alias zur gewünschten Version wechseln:
Im Terminal:
~ >> java7 export JAVA_HOME=$JAVA_7_HOME
quelle
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 ...
sdk install java 8.0.181-oracle
sdk install java 11.0.0-open
Wechseln:
sdk use java 8.0.181-oracle
sdk use java 11.0.0-open
So legen Sie einen Standard fest:
sdk default java 8.0.181-oracle
sdk default java 11.0.0-open
quelle
Mit Homebrew und Jenv:
Annahme: Mac-Maschine und Sie haben Homebrew bereits installiert.
Fass einbauen:
So installieren Sie das neueste Java:
So installieren Sie Java 8:
So installieren Sie Java 9:
Wenn Sie mehrere Versionen installieren / verwalten möchten, können Sie 'jenv' verwenden:
Installieren und konfigurieren Sie jenv:
Fügen Sie das installierte Java zu jenv hinzu:
So zeigen Sie alle installierten Java:
Obige Befehl wird die Liste der installierten Java geben:
Konfigurieren Sie die Java-Version, die Sie verwenden möchten:
quelle
Error: caskroom/cask was moved. Tap homebrew/cask-cask instead
, dannfatal: repository 'https://github.com/Homebrew/homebrew-cask-cask/' not found
IMHO, es ist nicht erforderlich, alle zusätzlichen Anwendungen / Pakete zu installieren.
Überprüfen Sie die verfügbaren Versionen mit dem folgenden Befehl:
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:
Zur Aufnahme 8 Oracle Java SE würden Sie den Befehl aufrufen:
Wie Sie sehen können, muss die angegebene Versionsnummer der eindeutige Satz von Zeichenfolgen sein: 1.8.0_181 vs 1.8.0_151
quelle
1.8.0_181-zulu-8.31.0.1
? oder ist es teilweise passend?JAVA_HOME
. Das manuelle Umschalten mit diesen Befehlen wird in meiner anderen Antwort behandelt.