Dies scheint Windows nicht zu unterstützen, oder doch?
– SikoSoft
27. November 2019 um 8:31 Uhr
Gleiches gilt für sdkman, beide werden nur mit wsl, cygwin usw. unterstützt, also keine native Windows-Unterstützung!
– Verhexung
25. April um 18:58 Uhr
Der Vollständigkeit halber erfüllt jenv nicht die Anforderung, JVMs einfach zu installieren.
– Brad
6. Oktober um 16:46 Uhr
SDKMAN! ist ein ähnliches Tool für das Java-Ökosystem. Unterstützt verschiedene Java-Versionen, Scala, Clojure, Kotlin, Groovy und Build-Tools wie Maven und Gradle.
Funktioniert auf Mac und Linux, mit einigen Erwähnungen der Unterstützung für Windows, je nachdem, wie sehr Sie bereit sind, es zu versuchen 🙂
Wenn Sie Ubuntu verwenden, können Sie per Befehl angeben, welche JVM Sie verwenden möchten (funktioniert nur für JVM, die von apt-get oder aptitude installiert wurde).
sudo update-alternatives --config java
Oder durch Setzen von JAVA_HOME. Hier ist eine gute Anleitung:
Der Vollständigkeit halber noch zwei weitere jabba (deren Autor ich bin; geschrieben in Go und entworfen nach nvm/gvm/rvm) und jenv (Nicht zu verwechseln mit jenv.be; unterstützt keine Installation von Oracle, kann aber von einer benutzerdefinierten Zip-Datei installieren).
djangofan
Wenn Sie bei JVMs zwischen ihnen wechseln müssen, müssen Sie nur eine Batchdatei (oder ein Powershell-Skript) verwenden, um den Klassenpfad und den JVM-Pfad zu verwalten. Sie müssen sich nicht auf den standardmäßigen JVM-Pfad des Systems verlassen und erlauben Ihrer App stattdessen, auf eine beliebige JVM zu verweisen, indem Sie den Klassenpfad und die JVM-Pfadumgebung in der Shell ändern, auf der die JVM ausgeführt wird.
Für Programme, die den Java-Standort aus der Registrierung erhalten, könnten Sie theoretisch auch ein Batch-Skript verwenden, um diesen zu aktualisieren.
In dieser Hinsicht ist Java viel einfacher als “Ruby Version Manager”.
Hier ist ein Beispiel, wie man eine neue Installation einrichtet (Sie können auch install Fertigstellung Sie müssen also nicht erst die Versionen auflisten). Das Java-Plugin wird hinzugefügt, eine bestimmte Version (es gibt Versionen für adoptopenjdk, corretto, dragonwell, graalvm, liberica, mandrel, microsoft, openjdk, oracle, sapmachine, semeru, temurin, trava, zulu) installiert und konfiguriert ist, um die globale (oder lokale Version) zu verwenden:
asdf plugin-add java # Add java Plugin
asdf list-all java # List all available java versions
asdf install java openjdk-18 # Install specific jdk version
asdf install java openjdk-17 # Install another jdk version
asdf global java openjdk-18 # Set the global jdk version
asdf local java openjdk-17 # Set the local version for calls from the current directory
asdf verwendet eine Datei in $HOME/.tool-versions um die global ausgewählte Version zu konfigurieren. Wenn Sie ein Tool in einem Verzeichnis aufrufen, das eine .tool-versions Datei mit einer anderen Version, die verwendet wird (definiert mit asdf local …).
djangofan
Der Trick besteht darin, update-java-alternatives (aus dem Paket java-common) zu verwenden. Der Befehl update-alternatives aktualisiert nicht alle symbolischen Links für verschiedene ausführbare Java /bin-Dateien, weshalb update-java-alternatives besser ist.
Um also für OpenJDK 6 bis 7 zu gehen, verwenden Sie update-java-alternatives -l um eine Liste von Java-Alternativen zu erhalten und dann zu verwenden sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 um das JDK zu wechseln.
ACHTUNG: Der obige Befehl kann die folgenden Fehler auslösen,
update-alternatives: error: no alternatives for mozilla-javaplugin.so.
update-java-alternatives: plugin alternative does not exist:
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
Dies liegt daran, dass das openjdk-Plugin standardmäßig nicht installiert ist. Lauf zu beheben sudo apt-get install icedtea-7-plugin und führen Sie update-java-alternatives erneut aus.
Wie Jocull vorgeschlagen hatte, finde ich sdkman den besten Java-Versionsmanager für meine Zwecke sdkman.io
– 0x90
27. November 2020 um 5:30 Uhr