Менеджер версий JVM
Есть ли 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.
Ответы
Ответ 1
Если вы используете Ubuntu, вы можете указать, какую JVM вы хотите использовать с помощью команды (работает только для JVM, установленной из apt-get или aptitude)
sudo update-alternatives --config java
Или, установив JAVA_HOME. Вот хороший учебник:
http://vietpad.sourceforge.net/javaonlinux.html
Ответ 2
http://www.jenv.be/ позволит использовать этот тип управления.
Ответ 3
С JVMs, если вам нужно переключаться между ними, вам просто нужно использовать командный файл (или powershell script) для управления путями классов и JVM. Вам не нужно полагаться на путь JVM по умолчанию для системы, а вместо этого просто позволяйте вашему приложению указывать на любой JVM, который вам нравится, изменяя путь пути к классам и среду JVM в оболочке, которая запускает JVM.
Для программ, которые получают местоположение Java из реестра, теоретически вы можете также использовать пакетную версию script.
В этом отношении Java намного проще, чем "менеджер версий Ruby".
Ответ 4
Нет. Не возвращаясь к менеджеру пакетов ОС (да, я думаю об apt-get), в мире Java нет такой вещи.
Ответ 5
Для полноты есть еще два - jabba (из которых я автор, написан на Go и разработан после nvm/gvm/rvm) и jenv (не путать с jenv.be; не поддерживает установку с oracle, но может установить с custom zip).
Ответ 6
Фокус в том, чтобы использовать update-java-альтернативы (из пакета java-common). Команда update-alternatives не будет обновлять каждую из символических ссылок для различных исполняемых файлов java/bin, поэтому лучше использовать опции update-java.
Итак, чтобы перейти на 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
и повторить обновление-java-альтернативы.