«1. Обзор

В связи с новым циклом выпуска Java разработчикам может потребоваться управлять параллельными версиями и различными сборками пакетов разработки программного обеспечения (SDK) в своей среде. Поэтому установка переменной PATH иногда может стать настоящей головной болью.

В этом уроке мы увидим, как SDKMAN! может помочь с легкостью управлять установкой и выбором SDK.

2. Что такое SDKMAN!?

СДКМАН! — это инструмент для управления параллельными версиями нескольких SDK, который SDKMAN! назвать «кандидатов».

Он предоставляет удобный интерфейс командной строки (CLI) и API для просмотра, установки, переключения и удаления кандидатов. Кроме того, он позаботится о настройке переменных среды для нас.

Это также позволяет разработчикам устанавливать SDK на основе JVM, такие как Java, Groovy, Scala, Kotlin и Ceylon. Также поддерживаются Maven, Gradle, SBT, Spring Boot, Vert.x и многие другие. СДКМАН! — это бесплатная легкая утилита с открытым исходным кодом, написанная на Bash.

3. Установите SDKMAN!

СДКМАН! поддерживается всеми основными операционными системами и может быть легко установлен на всех системах на основе Unix. Кроме того, он поддерживает оболочки Bash и Zsh.

Итак, давайте начнем с установки с помощью терминала:

$ curl -s "https://get.sdkman.io" | bash

Затем следуйте инструкциям на экране, чтобы завершить установку.

Нам могут понадобиться установленные пакеты zip и unzip для завершения процесса установки.

Затем откройте новый терминал или запустите:

$ source "$HOME/.sdkman/bin/sdkman-init.sh"

Наконец, выполните следующую команду, чтобы убедиться, что установка работает. Если все прошло хорошо, версия должна отображаться:

$ sdk version
SDKMAN 5.8.5+522

Для получения дополнительных сведений о настройке обратитесь к руководству по установке на SDKMAN! Веб-сайт.

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

$ sdk help

4. Список всех кандидатов SDK

Итак, давайте начнем с перечисления всех доступных кандидатов SDK.

$ sdk list

Команда list показывает всех доступных кандидатов, идентифицируемых по уникальному имени, описанию, официальному веб-сайту и команде установки:

=====================================================
Available Candidates
=====================================================
q-quit                                  /-search down
j-down                                  ?-search up
k-up                                    h-help
-----------------------------------------------------
Java (11.0.7.hs-adpt)                https://zulu.org
...
                                   $ sdk install java
-----------------------------------------------------
Maven (3.6.3)                https://maven.apache.org
...
                                  $ sdk install maven
-----------------------------------------------------
Spring Boot (2.3.1.RELEASE)          http://spring.io
...
                             $ sdk install springboot
------------------------------------------------------
...

Таким образом, мы можем использовать этот идентификатор для установки по умолчанию версия кандидата, например Spring Boot (2.3.1.RELEASE) или Maven (3.6.3). Указанные версии в этом списке представляют собой стабильные или долгосрочные версии каждого пакета SDK.

5. Установка версий Java и управление ими

5.1. Список версий

Чтобы просмотреть список доступных версий Java, используйте команду list. Результатом является таблица записей, сгруппированных по производителю и отсортированных по версии:

$ sdk list java
===================================================================
Available Java Versions
===================================================================
Vendor       | Use | Version | Dist    | Status | Identifier
-------------------------------------------------------------------
AdoptOpenJDK |     | 14.0.1  | adpt    |        | 14.0.1.j9-adpt
...
Amazon       |     | 11.0.8  | amzn    |        | 11.0.8-amzn
...
Azul Zulu    |     | 14.0.2  | zulu    |        | 14.0.2-zulu
...
BellSoft     |     | 14.0.2  | librca  |        | 14.0.2.fx-librca
...
GraalVM      |     | 20.1.0  | grl     |        | 20.1.0.r11-grl
...
Java.net     |     | 16.ea   | open    |        | 16.ea.6-open
...
SAP          |     | 14.0.2  | sapmchn |        | 14.0.2-sapmchn
...

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

5.2. Установите версию Java

Допустим, мы хотим установить новейшую сборку Java 14 от Azul Zulu. Поэтому копируем его идентификатор, то есть версию из таблицы, и добавляем в качестве аргумента в команду установки:

$ sdk install java 14.0.2-zulu
Downloading: java 14.0.2-zulu
In progress...
########### 100.0%
Repackaging Java 14.0.2-zulu...
Done repackaging...
Installing: java 14.0.2-zulu
Done installing!
Setting java 14.0.2-zulu as default.

SDKMAN! загрузит и разархивирует эту версию в каталог на нашем компьютере.

Кроме того, он обновит переменные среды, чтобы мы могли сразу использовать Java в терминале.

Мы можем проверить статус и использование любой версии с помощью команды list. Следовательно, теперь установлена ​​и используется версия 14.0.1:

$ sdk list java
=================================================================
Available Java Versions
=================================================================
 Vendor    | Use | Version | Dist    | Status    | Identifier
-----------------------------------------------------------------
 ...
 Azul Zulu | >>> | 14.0.1  | adpt    | installed | 14.0.1.j9-adpt
 ...

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

$ sdk install java custom-8 ~/Downloads/my-company-jdk-custom-8

5.3. Переключение между версиями

Мы можем управлять переключением между версиями в двух формах, временно:

$ sdk use java 14.0.1.j9-adpt

или постоянно:

$ sdk default java 14.0.1.j9-adpt

5.4. Удаление версии

Чтобы удалить установленную версию, запустите команду удаления с целевой версией:

$ sdk uninstall java 14.0.1.j9-adpt

5.5. Отображение используемых версий

Чтобы проверить текущую версию Java, мы запускаем текущую команду:

$ sdk current java
Using java version 14.0.2-zulu

Аналогично, последняя команда имеет тот же эффект, что и:

$ java -version

Чтобы показать версию SDK на нашей машине, мы можем запустить текущую команду без аргументов:

$ sdk current
Using:
java: 14.0.2-zulu
gradle: 6.2.2

6. Используя SDKMAN! с IDE

Установленные SDK хранятся в SDKMAN! каталог, который по умолчанию ~/.sdkman/candidates.

«Например, различные версии Java также будут доступны в каталоге ~/.sdkman/candidates/java/, а подкаталоги названы в честь версий:

$ ls -al ~/.sdkman/candidates/java/
total 0
drwxrwxrwx 1 user user 12 Jul 25 20:00 .
drwxrwxrwx 1 user user 12 Jul 25 20:00 ..
drwxrwxr-x 1 user user 12 Jul 25 20:00 14.0.2-zulu
lrwxrwxrwx 1 user user 14 Jul 25 20:00 current -> 14.0.2-zulu

Таким образом, текущая выбранная версия Java также будет доступны как текущие в этом каталоге.

Точно так же Gradle или любой другой SDK будет установлен в каталог кандидатов.

Таким образом, мы можем использовать любую конкретную версию Java, например, в нашей любимой IDE. Все, что нам нужно сделать, это скопировать путь к конкретной версии и указать его в конфигурации нашей IDE.

6.1. IntelliJ IDEA

В IntelliJ IDEA откройте «Структура проекта», затем откройте «Настройки проекта». В конфигурации проекта мы можем добавить новую версию Java, выбрав «Новый» в разделе «Project SDK»:

Project Structure dialog in IntelliJ

Мы также можем определить версию Java, Gradle или Maven для использования в Раздел «Инструменты сборки»:

Maven Configuration in IntelliJ

Совет. Версия Java должна быть такой же, как в «Project SDK» для Gradle или Maven.

6.2. Eclipse

В Eclipse откройте «Свойства проекта», выберите «Путь сборки Java», а затем перейдите на вкладку «Библиотеки». Здесь мы можем управлять новым SDK Java через «Добавить библиотеку…» и следуя инструкциям:

Мы также можем контролировать установленные SDK для всех проектов. Откройте «Настройки» в меню «Окно», а затем перейдите к «Установленные JRE». Здесь мы можем управлять SDK Java через «Добавить…» и следуя инструкциям:

Library managment in Eclipse

7. Заключение

Installed JREs in Eclipse

В этом уроке мы показали, как SDKMAN! может помочь нам в управлении различными версиями Java SDK среди других инструментов Java Environment, таких как Maven.

«