493 Stimmen

Mac OS X und mehrere Java-Versionen

Wie kann ich auf MacOS zusätzliche Java-Installation ausführen? Ich habe jdk8 installiert und das funktioniert gut. Jetzt brauche ich jedoch eine jdk7-Installation für Entwicklungszwecke. Beim Versuch, die alte Version über die DMG-Datei zu installieren, erhalte ich eine Warnung, dass bereits eine neuere Version von Java installiert ist und das Installationsprogramm beendet wird.

/usr/libexec/java_home -verbose
Matching Java Virtual Machines (1):
    1.8.0_20, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

   /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

Wie kann ich jdk7 zusätzlich zu dieser Installation installieren?

642voto

Adrien Be Punkte 18445

Der sauberste Weg, um mehrere Java-Versionen auf dem Mac zu verwalten, ist die Verwendung von Homebrew.

Und innerhalb von Homebrew verwenden Sie:

  • homebrew-cask um die Java-Versionen zu installieren
  • jenv um die installierten Java-Versionen zu verwalten

Wie auf http://hanxue-it.blogspot.ch/2014/05/installing-java-8-managing-multiple.html zu sehen ist, sind dies die Schritte, die zu befolgen sind.

  1. Homebrew installieren
  2. Homebrew jenv installieren
  3. Homebrew-cask installieren
  4. Eine bestimmte Java-Version mit Cask installieren (siehe den Absatz "homebrew-cask versions" unten)
  5. Diese Version zum Verwalten durch jenv hinzufügen
  6. Überprüfen, ob die Version korrekt von jenv verwaltet wird
  7. Wiederholen Sie die Schritte 4 bis 6 für jede benötigte Java-Version

homebrew-cask versions

Fügen Sie den homebrew/cask-versions Tap zu Homebrew hinzu, indem Sie verwenden:

brew tap homebrew/cask-versions

Dann können Sie alle verfügbaren Versionen anzeigen, indem Sie nach Eclipse temurin suchen, mehr Details hier

brew search temurin

Dann können Sie die gewünschten Versionen installieren, obwohl Version 7 nicht mehr über diese Casks in Homebrew angezeigt wird:

brew install --cask temurin8
brew install --cask temurin9

Und fügen Sie sie wie gewohnt jenv hinzu, um sie zu verwalten.

jenv add 

Ich denke, das ist der sauberste und einfachste Weg.


Eine weitere wichtige Sache zu beachten, wie in Mac OS X 10.6.7 Java Path Current JDK confusing erwähnt:

Für verschiedene Arten von JDKs oder Installationen gibt es verschiedene Pfade

Sie können die Pfade der installierten Versionen überprüfen, indem Sie /usr/libexec/java_home -V verwenden, siehe Wie überprüfe ich, ob das Java JDK auf dem Mac installiert ist?

Auf Mac OS X Mavericks habe ich Folgendes gefunden:

  1. Eingebautes JRE Standard: /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

  2. Von Apple heruntergeladene JDKs: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/

  3. Von Oracle heruntergeladene JDKs: /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home


Ressourcen

437voto

Vegard Punkte 4532

Deinstallieren Sie jdk8, installieren Sie jdk7 und installieren Sie dann jdk8 erneut.

Mein Ansatz zum Wechseln zwischen ihnen (in .profile):

export JAVA_7_HOME=$(/usr/libexec/java_home -v1.7)
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_9_HOME=$(/usr/libexec/java_home -v9)
export JAVA_20_HOME=$(/usr/libexec/java_home -v20)

alias java7='export JAVA_HOME=$JAVA_7_HOME'
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java9='export JAVA_HOME=$JAVA_9_HOME'
alias java20='export JAVA_HOME=$JAVA_20_HOME'

#default java8
export JAVA_HOME=$JAVA_8_HOME

Dann können Sie einfach java7 oder java8 in einem Terminal eingeben, um die Versionen zu wechseln.

(editiert: aktualisiert, um Dylans Verbesserung für Java 9 hinzuzufügen)

177voto

bob Punkte 6781

Für macOS Sierra 420

Dieser Leitfaden wurde aus verschiedenen Quellen (Antworten oben sowie anderen Beiträgen) zusammengestellt und funktioniert perfekt.

0. Wenn Sie es noch nicht getan haben, installieren Sie homebrew.

Siehe https://brew.sh/

1. Installieren Sie jenv

brew install jenv

2. Fügen Sie jenv dem Bash-Profil hinzu

if which jenv > /dev/null; then eval "$(jenv init -)"; fi

3. Fügen Sie jenv zu Ihrem Pfad hinzu

export PATH="$HOME/.jenv/shims:$PATH"

4. Tippen Sie "homebrew/cask-versions" an

Hinweis: "Tippen" erweitert die Liste der verfügbaren Repos, die brew installieren kann, über die Standardliste der verfügbaren Repos von brew hinaus.

brew tap homebrew/cask-versions

5. Installieren Sie die neueste Version von Java

brew install java --cask

6. Installieren Sie Java 6 (oder 7 oder 8, je nach Bedarf)

brew install java6 --cask
#brew install java7 --cask
#brew install java8 --cask

? Vielleicht Terminal schließen und neu starten, so dass es eventuelle neue ENV-Variablen sieht, die eingerichtet wurden.

7. Installationen überprüfen

Die meisten Java-Versionen werden hier installiert: /Library/Java/JavaVirtualMachines, schauen wir mal rein.

ls -la /Library/Java/JavaVirtualMachines

HINWEIS: Manchmal landet Java hier: /usr/local/opt/openjdk/bin/java, also können Sie einen Blick in das "opt" Verzeichnis werfen und nach "openjdk" in der Liste suchen mit:

ls -la /usr/local/opt/

8. Fügen Sie jeden Pfad einzeln zu jenv hinzu.

Wir müssen "/Contents/Home" zum Versionsordner hinzufügen. WARNUNG: Verwenden Sie die tatsächlichen Pfade auf Ihrem Computer... dies sind nur BEISPIELE

jenv add /Library/Java/JavaVirtualMachines/1.6.0___BEISPIEL___/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk___BEISPIEL___/Contents/Home

TIPP: Wenn Sie glauben, dass Sie bereits Java haben, aber nicht sicher sind, wo es ist, versuchen Sie "which" -- wenn Sie Java installiert haben, sollte "which" den Pfad zu Java ausdrucken:

which java

9. Überprüfen Sie, ob jenv OK registriert wurde

jenv versions

10. Setzen Sie die Java-Version (global)

Wo XX eines der Elemente in der obigen Liste der Versionen entspricht.

jenv global XX

Java-Version überprüfen

java -version

HINWEIS: Wenn die Version nicht angezeigt wird, aktivieren Sie das Plugin export (siehe Kommentare unten von cakraww):

jenv enable-plugin export

jenv-Versionen überprüfen

Sollte auch die aktuell verwendete Version mit einem Sternchen anzeigen.

jenv versions

FERTIG


Schnelle zukünftige Referenz

Um Java-Versionen zu ändern

... Siehe die Liste der verfügbaren Java-Versionen

jenv versions

... dann, wo XX mit einem Element in der obigen Liste übereinstimmt

jenv global XX

... überprüfen Sie auch, welches Java das System erkennt (siehe TIPP in #8 oben)

which java

94voto

Michael Easter Punkte 22288

SDKMAN! ist ein großartiges Werkzeug für die Verwendung mehrerer Versionen von Java, Gradle, Groovy, Kotlin und anderen JVM-Tools auf Mac OS. Installations- und Verwendungsdokumentationen sind leicht auf der Hauptseite zu finden.

(Ich habe keine Verbindung, nur ein zufriedener Benutzer).

Als Beispiel, wenn ich Folgendes in einem Terminalfenster eingebe, wird eine Liste der verfügbaren Java SDK-Versionen angezeigt (bearbeitet für Kürze):

$ sdk list java
Verfügbare Java-Versionen
   + 17.0.9-oracle                                                                        
 > + 11.0.21-zulu                                                                         
     21.0.1-tem                     

Hier bedeutet +, dass die Version installiert ist. > bedeutet, welche Version derzeit verwendet wird. Zum Installieren einer Version:

$ sdk install java 21.0.1-tem

Um eine Version in diesem Terminalfenster zu verwenden:

$ sdk use java 21.0.1-tem

10voto

hulius Punkte 199

Im gleichen Geist wie @Vegard (leichtgewichtig):

  • Installieren Sie die gewünschten JDKs mit Homebrew

  • Fügen Sie diese jdk Bash-Funktion und einen Standard in Ihre .profil hinzu

    jdk() {
        version=$1
        export JAVA_HOME=$(/usr/libexec/java_home -v"$version");
        java -version
     }
    
    export JAVA_HOME=$(/usr/libexec/java_home -v11); # Ihre Standardversion
  • und dann können Sie Ihren JDK wechseln, indem Sie Folgendes tun

     jdk 9
     jdk 11
     jdk 13

Basiert auf https://github.com/AdoptOpenJDK/homebrew-openjdk.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X