Die sauberste Methode zum Verwalten mehrerer Java-Versionen auf einem Mac ist die Verwendung Homebrew
.
Und innerhalb Homebrew
verwenden Sie:
homebrew-cask
um die Versionen von Java zu installieren
jenv
um die installierten Versionen von Java zu verwalten
Wie auf http://hanxue-it.blogspot.ch/2014/05/installing-java-8-managing-multiple.html zu sehen ist , sind dies die folgenden Schritte.
- Installieren Sie Homebrew
- Installieren Sie Homebrew Jenv
- Installieren Sie das Homebrew-Fass
- Installieren Sie eine bestimmte Java-Version mit cask (siehe Abschnitt "Homebrew-Cask-Versionen" unten).
- Fügen Sie diese Version hinzu, damit jenv sie verwaltet
- Überprüfen Sie, ob die Version von jenv korrekt verwaltet wird
- Wiederholen Sie die Schritte 4 bis 6 für jede Java-Version, die Sie benötigen
Homebrew-Fass-Versionen
Fügen Sie den homebrew/cask-versions
Hahn zu Homebrew hinzu, indem Sie:
brew tap homebrew/cask-versions
Dann können Sie sich alle verfügbaren Versionen ansehen:
brew search java
Dann können Sie die Version (en) installieren, die Sie mögen:
brew cask install java7
brew cask install java6
Und fügen Sie sie hinzu, damit sie wie gewohnt von jenv verwaltet werden.
jenv add <javaVersionPathHere>
Ich denke, dies ist der sauberste und einfachste Weg, dies zu tun.
Ein weiterer wichtiger Punkt, wie in Mac OS X 10.6.7 Java Path Current JDK erwähnt, verwirrend :
Für verschiedene Arten von JDKs oder Installationen haben Sie unterschiedliche Pfade
Sie können die Pfade der installierten Versionen überprüfen /usr/libexec/java_home -V
, siehe Wie überprüfe ich, ob das Java JDK auf einem Mac installiert ist?
Unter Mac OS X Mavericks stellte ich Folgendes fest:
1) Integrierte JRE-Standardeinstellung: /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
brew install caskroom/cask/brew-cask
anstellebrew install cask
eines Emacs-Plugins.jenv
Rückgabe desNo such file or directory.
Fehlers. Dieses Wiki hat mir geholfen, es zu lösen. github.com/gcuisinier/jenv/wiki/Trouble-Shooting/Library/Java/JavaVirtualMachines/
und wenn Sie sie mitjenv add
Ihnen hinzufügen, fügen Sie einen Pfad hinzu, der so aussieht/Library/Java/JavaVirtualMachines/[specific-version]/Contents/Home/
. Prost!brew cask search java7
aber kein Fass für "java7" gefunden./usr/libexec/java_home -V
Überprüfen Sie anschließend mit , welche Pfade installiert wurden.Deinstallieren Sie jdk8, installieren Sie jdk7 und installieren Sie jdk8 neu.
Mein Ansatz zum Wechseln zwischen ihnen (in .profile):
Dann können Sie einfach
java7
oderjava8
in ein Terminal eingeben, um die Version zu wechseln.(Bearbeiten: aktualisiert, um Dylans Verbesserung für Java 9 hinzuzufügen)
quelle
9
zB lautenexport JAVA_9_HOME=$(/usr/libexec/java_home -v9)
Für macOS Sierra 420
Dieser Leitfaden wurde aus verschiedenen Quellen zusammengeschustert (Antworten oben sowie andere Beiträge) und funktioniert perfekt.
0. Wenn Sie es noch nicht getan haben, installieren Sie Homebrew.
Siehe https://brew.sh/
1. Installieren Sie jenv
2. Fügen Sie jenv zum Bash-Profil hinzu
3. Fügen Sie Ihrem Pfad jenv hinzu
4. Tippen Sie auf "Fass / Versionen".
Zu Ihrer Information: "Tap" erweitert die Liste der verfügbaren Repos, die Brew installieren kann, über die Standardliste der verfügbaren Repos von Brew hinaus.
5. Installieren Sie die neueste Version von Java
6. Installieren Sie Java 6 (oder 7 oder 8, was auch immer Sie benötigen)
? Schließen Sie möglicherweise das Terminal und starten Sie es neu, damit alle neuen ENV-Variablen angezeigt werden, die eingerichtet wurden.
7. Überprüfen Sie die Installationen
Alle Java-Versionen werden hier installiert:
/Library/Java/JavaVirtualMachines
Werfen wir einen Blick darauf.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 Rechner ... das sind nur Beispiel ‚s
9. Überprüfen Sie, ob jenv OK registriert hat
10. Stellen Sie die zu verwendende Java-Version ein (global)
Wobei XX mit einem der Elemente in der obigen Versionsliste übereinstimmt.
Überprüfen Sie die Java-Version
Überprüfen Sie die JenV-Versionen
Sollte auch die aktuelle Version anzeigen, die mit einem Sternchen verwendet wird.
ERLEDIGT
Schnelle zukünftige Referenz
Java-Versionen ändern
... Siehe die Liste der verfügbaren Java-Versionen
... dann, wo XX mit einem Element in der obigen Liste übereinstimmt
quelle
brew cask install java*
brew tap caskroom/versions
sollte seinbrew tap homebrew/cask-versions
SDKMAN! ist ein großartiges Tool für die Verwendung mehrerer Versionen von Java, Gradle, Groovy, Kotlin und anderen JVM-Tools unter Mac OS. Das Installations- und Verwendungsdokument befindet sich eindeutig auf der Hauptwebsite.
(Ich habe keine Zugehörigkeit, nur einen glücklichen Benutzer).
Wenn ich als Beispiel in einem Terminalfenster Folgendes eingebe, wird eine Liste der verfügbaren Java SDK-Versionen angezeigt (der Kürze halber bearbeitet):
Hier
+
bedeutet, dass die Version installiert ist.>
Gibt an, welche Version derzeit verwendet wird. So installieren Sie eine Version:So verwenden Sie eine Version in diesem Terminalfenster:
quelle
Wie auf dieser Website zu finden, beginnen wir mit der Installation von jEnv
Führen Sie dies im Terminal aus
Fügen Sie jEnv zum Bash-Profil hinzu
Bei der Erstinstallation ist jEnv kein JDK zugeordnet.
Zum Beispiel habe ich gerade JDK 8 installiert, aber jEnv weiß nichts davon. So überprüfen Sie Java-Versionen auf jEnv
Im Moment wurde nur die Java-Version (jre) auf dem System gefunden. Das
*
zeigt die aktuell ausgewählte Version. Im Gegensatz zu rvm und rbenv kann jEnv JDK nicht für Sie installieren. Sie müssen JDK manuell von der Oracle-Website installieren.Installieren Sie JDK 6 von der Apple-Website. Dadurch wird Java in installiert
/System/Library/Java/JavaVirtualMachines/
. Der Grund, warum wir Java 6 von der Apple-Website installieren, ist, dass SUN JDK 6 für MAC nicht entwickelt hat. Daher hat Apple eine eigene Bereitstellungsversion erstellt / geändert.Installieren Sie auf ähnliche Weise JDK7 und JDK8.
Fügen Sie jEnv JDKs hinzu.
JDK 6:
JDK 7:
JDK 8:
Überprüfen Sie die mit jenv installierten Java-Versionen
Jetzt haben wir 3 Java-Versionen auf unserem System. Verwenden Sie den Befehl, um eine Standardversion festzulegen
Beispiel: Ich wollte, dass Jdk 1.6 IntelliJ startet
Überprüfen Sie die Java-Version
Java-Version
Das ist es. Wir haben jetzt mehrere Versionen von Java und können problemlos zwischen ihnen wechseln. jEnv bietet auch einige andere Funktionen, z. B. Wrapper für Gradle, Ant, Maven usw. und die Möglichkeit, JVM-Optionen global oder lokal festzulegen. Weitere Informationen finden Sie in der Dokumentation.
quelle
Ich finde diesen Java-Versionsmanager namens Jabba kürzlich und die Verwendung ist Versionsmanagern anderer Sprachen wie rvm (Ruby), nvm (Knoten), pyenv (Python) usw. sehr ähnlich. Außerdem ist er plattformübergreifend, sodass er definitiv verwendet werden kann Mac.
Nach der Installation wird in ~ / .jabba ein Verzeichnis erstellt, in das alle von Ihnen installierten Java-Versionen eingefügt 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 aufgeführt. Eine kurze Zusammenfassung zum Starten:
quelle
Ich verwende Mac OS X 10.9.5. Auf diese Weise verwalte ich mehrere JDK / JRE auf meinem Computer, wenn ich eine Version zum Ausführen von Anwendung A und zum Verwenden einer anderen Version für Anwendung B benötige.
Ich habe das folgende Skript erstellt, nachdem ich online Hilfe erhalten hatte.
Ich habe das obige Skript in die .profile-Datei eingefügt. Öffnen Sie einfach das Terminal, geben Sie vi .profile ein, hängen Sie das Skript mit dem obigen Snippet an und speichern Sie es. Sobald Sie ausgehen
source .profile
, wird Ihr Profilskript ausgeführt, ohne dass Sie das Terminal neu starten müssen. Gebenjava -version
Sie nun ein, dass 1.7 als Ihre aktuelle Version angezeigt werden soll. Wenn Sie beabsichtigen, es auf 1.8 zu ändern, kommentieren Sie die Zeilesetjdk jdk1.7.0_15.jdk
und kommentieren Sie die Zeile aussetjdk jdk1.8.0_60.jdk
. Speichern Sie das Skript und führen Sie es erneut mit dem Quellbefehl aus. Ich verwende diesen Mechanismus, um mehrere Versionen von JDK / JRE zu verwalten, wenn ich zwei verschiedene Maven-Projekte kompilieren muss, die unterschiedliche Java-Versionen benötigen.quelle
Jenv auf Mac Sierra:
Wenn dies nach der Installation nicht funktioniert, führen Sie diese Fehlerbehebung durch, um dem Pfad eine ausführbare Java-Datei hinzuzufügen
obwohl
eval "$(jenv init -)"
könnte diesen Job machen. Der Grund dafür ist, dass der Ordner / bin nicht mehr vorhanden ist, wie auf der Homepage beschrieben. Stattdessen wird der Shim-Ordner als / bin verwendet.which java
darf drucken / Bibliothek / ...Schließlich
which java
gibt Ihnen:quelle
Im gleichen Sinne wie @Vegard (leicht):
Fügen Sie diese
jdk
Bash-Funktion und eine Standardeinstellung in Ihre ein.profile
und dann, um Ihr JDK zu wechseln, können Sie tun
Basierend auf https://github.com/AdoptOpenJDK/homebrew-openjdk .
quelle
Hier ist eine trockenere Version für Bash (basierend auf Vegards Antwort)
Ersetzen Sie 1.7 und 1.8 durch die Versionen, an denen Sie interessiert sind, und Sie erhalten einen Alias namens "javaX". Dabei ist 'X' die Java-Version (7/8 im folgenden Snippet), mit der Sie problemlos die Version wechseln können
quelle
Um neuere Versionen von OpenJDK zu installieren, verwende ich dies. Beispiel für OpenJDK 14:
Aktuelle Informationen finden Sie unter https://github.com/AdoptOpenJDK/homebrew-openjdk .
quelle