Рубрики
Без рубрики

Несколько JDK? Нет проблем!

Были ли у вас проблемы с несколькими версиями Java на вашем компьютере? Вы теряете время на настройку… Помеченный java, jdk, jenv, maven.

Были ли у вас проблемы с несколькими версиями Java на вашем компьютере? Вы теряете время на настройку переменных среды? В мире Linux есть элегантное решение, и оно называется jEnv .

Вам необходимо поддерживать свои Java-программы, написанные на Java 8 или даже ниже. Разрабатывайте приложения с Java 11 и все равно попробуйте Java 12 или 13. Конечно, у вас будут проблемы.

Предполагая, что у вас уже есть среда разработки с Java 8 и Maven. В примерах я буду использовать Linux Mint. Часто возникают проблемы, когда у нас более одной версии Java на одном компьютере. Чтобы решить эту проблему, мы в конечном итоге выполняем несколько сценариев для изменения JAVA_HOME, используя платформу альтернатив, и нам часто приходится перезапускать сеанс пользователя, чтобы изменения вступили в силу.

Идея состоит в том, чтобы сохранить текущую версию вашей Java, установить JDK 11 и запустить ту или иную версию в соответствии с потребностями проекта. Мы увидим, как легко это сделать с помощью некоторых инструментов. Когда я ссылаюсь на Java 11, JDK или OpenJDK, я всегда буду ссылаться на OpenJDK 11.

Скачать OpenJDK:

$ wget https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_linux-x64_bin.tar.gz
$ sudo tar xvf openjdk-11.0.1_linux-x64_bin.tar.gz --directory /usr/lib/jvm/

После этого, если вы выполните команду java -версия вы увидите, что ничего не изменилось, и мы продолжим работу с Java 8:

$ java -version
java version "1.8.0_191" Java(TM) SE Runtime Environment (build 1.8.0_191-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

Maven все еще существует с текущей Java:

$ mvn -version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T15:33:14-03:00) Maven home: /opt/maven Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-8-oracle/jre

Чтобы проверить, все ли в порядке с Java 11, просто выполните команду:

$ /usr/lib/jvm/jdk-11.0.1/bin/java -version
openjdk version "11.0.1" 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)

Готов! У нас есть обе версии Java на одной машине, и что теперь?

Предполагая, что большинство наших проектов будут работать с Java 8 в течение некоторого времени, давайте определим эту версию как “глобальную”, а Java 11 – как “локальную” версию.

JENV – это инструмент командной строки, который поможет вам забыть, как установить переменную среды JAVA_HOME. Это инструмент, который позволяет настраивать версии Java глобальным или локальным способом. Предполагая, что у нас уже установлена и настроена Java 8, например, с помощью maven.

Этот инструмент доступен только для Linux и Mac. Для установки в Linux выполните следующие действия (при условии, что у вас установлен git).:

$ git clone https://github.com/gcuisinier/jenv.git ~/.jenv
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile

Если вы используете Zsh:

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(jenv init -)"' >> ~/.zshrc

Закройте терминал и откройте его снова. Выполните команду env

Если все в порядке, вы должны увидеть сообщение jenv + версия . Пример: jenv 0.5.1-5-gaf89d78

Если это не сработает, выполните шаг 2 для bashrc вместо bash_profile

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(jenv init -)"' >> ~/.bashrc

Добавление версий Java в jEnv:

Java 8:

$ jenv add /usr/lib/jvm/java-8-oracle

Java 11:

$ jenv add /usr/lib/jvm/jdk-11.0.1

Проверка версий java:

$ jenv versions
  system
  11.0
  11.0.1 (set by /home/sandro/.jenv/version)
  1.8
  1.8.0.191

Бегущий

Предполагая, что вам нужно сохранить Java 8 по умолчанию для устаревших приложений и использовать Java 11 в определенных проектах или каталогах.

Определение глобальной версии:

$ jenv global 1.8.0.191

Определение локальной версии (для каждого каталога):

$ jenv local 11.0.1

Вывод

Мы устанавливаем Java 11 без ущерба для среды, которая уже работает с Java 8. Мы устанавливаем и настраиваем инструмент jEnv, создаем и компилируем проект Java 11. В следующем посте мы проанализируем приложение Java 8 и посмотрим, сможем ли мы запустить его на Java 11.

Если у вас есть какие-либо вопросы или проблемы, оставьте комментарий. Спасибо за чтение.

Рекомендации

Рекомендации

Оригинал: “https://dev.to/sandrogiacom/multiple-jdks-no-problem-1knc”