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?

7voto

Mayur Punkte 336

Mehrere Java-Versionen auf dem Mac mit jenv verwalten

  1. Installiere Homebrew mit folgendem Befehl

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  2. Installiere jenv und aktiviere jenv

    brew install jenv
    
    echo 'eval "$(jenv init -)"' >> ~/.bash_profile
  3. Tap cask-versions

    brew tap homebrew/cask-versions
  4. Suche verfügbare Java-Versionen, die installiert werden können

    brew search java
  5. Zum Beispiel, um Java6 zu installieren, verwende folgenden Befehl

    brew install cask java6
  6. Füge mehrere Versionen von Java in jenv hinzu

    jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home
    
    jenv add /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Hinweis: Wenn du einen Fehler wie ln: /Users//.jenv/versions/oracle64-1.8.0.231: No such file or directory erhältst, führe folgendes aus:

   mkdir -p /Users//.jenv/versions/oracle64-1.8.0.231
  1. Aktualisiere jenv nach dem Hinzufügen von JDKs

    jenv rehash
  2. Liste bekannte Java-Versionen in jenv auf

    jenv versions
  3. Setze Standard-Version

    jenv global oracle64-1.8.0.231
  4. Ändere die Java-Version für ein Projekt

    jenv local oracle64-1.6.0.65
  5. Setze JAVA_HOME auf dieselbe Version wie jenv

    jenv exec bash
    
    echo $JAVA_HOME

7voto

Dinesh Arora Punkte 1897

Wie auf dieser Website gefunden. Also lassen Sie uns beginnen, indem wir jEnv installieren

  1. Führen Sie dies im Terminal aus

    brew install https://raw.github.com/gcuisinier/jenv/homebrew/jenv.rb
  2. Fügen Sie jEnv dem Bash-Profil hinzu

    if which jenv > /dev/null; then eval "$(jenv init -)"; fi
  3. Wenn Sie jEnv zum ersten Mal installieren, wird es keine mit ihm verbundene JDK haben.

    Zum Beispiel habe ich gerade JDK 8 installiert, aber jEnv weiß nichts darüber. Um Java-Versionen auf jEnv zu überprüfen

    Im Moment hat es nur Java-Versionen (jre) im System gefunden. Das * zeigt die aktuell ausgewählte Version an. Anders als rvm und rbenv kann jEnv kein JDK für Sie installieren. Sie müssen das JDK manuell von der Oracle-Website installieren.

  4. Installieren Sie JDK 6 von der Apple-Website. Dies installiert Java in /System/Library/Java/JavaVirtualMachines/. Der Grund, warum wir Java 6 von der Apple-Website installieren, ist, dass SUN kein JDK 6 für MAC erstellt hat, also hat Apple seine eigene Version erstellt/angepasst.

  5. Installieren Sie auch JDK7 und JDK8.

  6. Fügen Sie JDKs zu jEnv hinzu.

    JDK 6:

    JDK 7: http://javahabi@javahabit.com/wp-content/uploads/2015/03/img_5518ab9bc47d4.png

    JDK 8: http://javahabi@javahabit.com/wp-content/uploads/2015/03/img_5518abb2c1217.png

  7. Überprüfen Sie die installierten Java-Versionen mit jenv

    http://javahabi@javahabit.com/wp-content/uploads/2015/03/img_5518abceb0deb.png

  8. Jetzt haben wir 3 Java-Versionen auf unserem System. Um eine Standardversion festzulegen, verwenden Sie den Befehl

    jenv local 

    Zum Beispiel wollte ich Jdk 1.6 verwenden, um IntelliJ zu starten

    jenv local oracle64-1.6.0.65
  9. Überprüfen Sie die Java-Version

    java -version http://javahabi@javahabit.com/wp-content/uploads/2015/03/img_5518abe376dd0.png

Das war's. Jetzt haben wir mehrere Java-Versionen und können problemlos zwischen ihnen wechseln. jEnv bietet auch weitere Funktionen, wie Wrapper für Gradle, Ant, Maven usw. sowie die Möglichkeit, JVM-Optionen global oder lokal zu setzen. Schauen Sie sich die Dokumentation für weitere Informationen an.

6voto

York Yang Punkte 487

Ich habe vor kurzem diesen Java-Version-Manager namens Jabba gefunden und die Verwendung ist sehr ähnlich zu Version-Managern anderer Sprachen wie rvm (Ruby), nvm (Node), pyenv (Python) etc. Es ist auch plattformübergreifend, also definitiv auch auf Mac verwendbar.

Nach der Installation wird ein Verzeichnis in ~/.jabba erstellt, in dem alle installierten Java-Versionen abgelegt werden. Es "unterstützt die Installation von Oracle JDK (Standard) / Server JRE, Zulu OpenJDK (seit 0.3.0), IBM SDK, Java Technology Edition (seit 0.6.0) und von benutzerdefinierten URLs".

Die grundlegende Verwendung ist auf ihrem Github aufgelistet. Eine schnelle Zusammenfassung zum Start:

curl -sL https://github.com/shyiko/jabba/raw/master/install.sh | bash && . ~/.jabba/jabba.sh

# Oracle JDK installieren
jabba install 1.8 # "jabba use 1.8" wird automatisch aufgerufen 
jabba install 1.7 # "jabba use 1.7" wird automatisch aufgerufen 

# Liste aller installierten JDKs anzeigen
jabba ls

# Zu einer anderen JDK-Version wechseln
jabba use 1.8

5voto

Daniel Danielecki Punkte 5658

Ab 2023 hat brew install --cask zulu8 bei mir auf dem Apple Chip nicht funktioniert. Auch brew install openjdk@8 hat nicht funktioniert. Die einzige Lösung, die bei mir funktioniert hat, war brew install --cask adoptopenjdk8 und dann natürlich vim ~/.zshrc und innerhalb:

export JAVAC_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
alias javac8='export JAVA_HOME=$JAVAC_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java8='export JAVA_HOME=$JAVA_8_HOME'

Wechseln Sie vom Terminal aus mit javac8 zu einer frisch installierten (anderen) Version. Hinweis: Sie können andere Java-Versionen als ich haben, also ist es nur ein Beispiel.

Bearbeitung: Aus irgendeinem Grund dauert es einige Zeit, bis es aktiviert ist. Es scheint mir, dass ein Neustart des Laptops erforderlich ist.

5voto

CodeFarmer Punkte 2510

Jenv auf Mac Sierra:

Wenn es nach der Installation nicht funktioniert, führen Sie diesen Bugfix aus, um das Java-Programm zur Umgebungsvariable hinzuzufügen

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

Auch wenn eval "$(jenv init -)" diese Aufgabe erledigen könnte. Der Grund dafür ist, dass der /bin-Ordner nicht mehr vorhanden ist, wie auf der Homepage beschrieben, stattdessen wird der Shims-Ordner als /bin verwendet.

  • Vergewissern Sie sich, dass ~/.jenv vorhanden ist
  • which java könnte /Library/... ausgeben
  • jenv global 1.8
  • jenv shell 1.8

Schließlich gibt which java Ihnen:

/Users/xxxx/.jenv/shims/java

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