Менеджер версий JVM - PullRequest
       6

Менеджер версий JVM

27 голосов
/ 17 марта 2010

Существует ли Ruby Version Manager эквивалент для мира Java?

Я ищу инструмент, который позволил бы мне легко загружать и устанавливать новые JVM и переключаться между ними. Например:

jvm install <version>
jvm list //will list installed JVMs on my system
jvm use jdk1.6 //will switch my env to jdk 1.6 version, etc.

Ответы [ 6 ]

16 голосов
/ 08 мая 2013

http://www.jenv.be/ разрешит этот тип управления.

5 голосов
/ 11 апреля 2012

Если вы используете Ubuntu, вы можете указать, какую JVM вы хотите использовать через команду (работает только для JVM, установленной из apt-get или aptitude)

sudo update-alternatives --config java

Или установив JAVA_HOME. Вот хороший учебник:

http://vietpad.sourceforge.net/javaonlinux.html

5 голосов
/ 17 марта 2010

В JVM, если вам нужно переключаться между ними, вам просто нужно использовать командный файл (или скрипт powershell) для управления путем к классам и путем JVM. Вам не нужно полагаться на системный путь JVM по умолчанию, а просто позволить своему приложению указывать на любой JVM, который вам нравится, изменяя путь к классам и JVM в оболочке, в которой работает JVM.

Для программ, которые получают местоположение Java из Реестра, теоретически вы можете использовать пакетный скрипт для его обновления.

В этом отношении Java намного проще, чем "менеджер версий Ruby".

4 голосов
/ 25 марта 2016

Для полноты картины есть еще два - jabba (автором которого я являюсь; написан на Go и разработан после nvm / gvm / rvm) и jenv ( не путать с jenv.be; не поддерживает установку из oracle, но может устанавливать из пользовательского zip-файла).

2 голосов
/ 10 октября 2018

SDKMAN! - аналогичный инструмент для экосистемы Java. Поддерживает различные версии Java, Scala, Clojure, Kotlin, Groovy и инструменты сборки, такие как Maven и Gradle.

Работает на Mac и Linux, с некоторыми упоминаниями о поддержке Windows в зависимости от того, как сильно вы готовы попробовать:)

0 голосов
/ 09 января 2015

Хитрость заключается в использовании update-java-alternatives (из пакета java-common). Команда update-alternatives не будет обновлять каждую символическую ссылку для различных исполняемых файлов java / bin, поэтому лучше использовать update-java-alternatives.

Итак, чтобы перейти к OpenJDK 6-7, используйте update-java-alternatives -l, чтобы получить список альтернатив Java, а затем используйте sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 для переключения JDK.

CAVEAT: приведенная выше команда может выдать следующие ошибки,

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

Это потому, что плагин openjdk не установлен по умолчанию. Чтобы исправить, запустите sudo apt-get install icedtea-7-plugin и перезапустите update-java-alternatives.

...