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

Использование SDKMAN! для работы с несколькими версиями Java

Если вы пишете на Java, вы можете использовать Java 11, или 8, или, возможно, даже более старую версию. Ты м… С пометкой java, установка, инструменты.

Если вы пишете на Java, вы можете использовать Java 11, или 8, или, возможно, даже более старую версию. Вы также можете создавать прототипы кода для более новых версий Java, текущая версия – 13. Java 14 будет выпущена в этом месяце, а 15 – позже в этом году. В то же время вы можете изучать различные сборки OpenJDK – есть несколько бесплатных альтернатив. Я использую Принимаю сборки OpenJDK OpenJDK , которые становятся все более популярным выбором в соответствии с отчетом об экосистеме JVM 2020 .

Вы также могли бы попробовать различные инструменты сборки, такие как Maven и Gradle . Я использую и то, и другое, в зависимости от проекта.

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

Введите SDKMAN! Это инструмент для управления установкой и выбором наборов для разработки программного обеспечения – не только различных версий и сборок самой Java , но и инструментов для сборки, отладки, мониторинга, документирования и развертывания тоже. Он доступен для Windows, Linux и Mac OS.

Установка SDKMAN!

Следуйте инструкциям по установке для вашей платформы. Если вы часто пользуетесь терминалом, я настоятельно рекомендую проверить О мой Zsh , который может добавить массу полезной информации и поведения. Есть SDKMAN! плагин для Oh My Zsh, который добавляет завершение вкладки в команду sdk , что действительно полезно. Включите это, найдя строку plugins= в файле .zshrc в вашем домашнем каталоге и добавив sdk . Мой читает:

plugins=(git sdk)

Если вы отредактируете этот файл, вам нужно будет перезагрузить конфигурацию Zsh с помощью source ~/.zshrc .

Установка определенной версии Java

Допустим, мы хотим установить последнюю сборку Java 11 из AdoptOpenJDK. Прежде всего давайте проверим, что он доступен, используя sdk list java . Если вы настроили Oh My Zsh, это можно заполнить вкладками:

Таким образом, последняя сборка Java 11 OpenJDK из AdoptOpenJDK имеет идентификатор 11.0.6.hs-adpt . Установите его с помощью:

sdk install java 11.0.6.hs-adpt

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

➜ java -version
openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.6+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.6+10, mixed mode)

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

Я также установил последнюю версию Java 14 с ранним доступом (должна быть выпущена 17 марта 2020 года), чтобы я мог опробовать некоторые новые функции. Я сделал это с:

sdk install java 14.ea.36-open

Я сказал “нет”, когда он спросил, хочу ли я использовать это в качестве версии по умолчанию. Позже переключайтесь между ними с помощью sdk use java <версия> :

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

Вы можете увидеть, какую версию вы используете прямо сейчас, с помощью текущий sdk :

➜ sdk current Using:java: 14.ea.36-open

Установка других инструментов

Для разных проектов я использую либо Maven или Gradle в качестве моего инструмента сборки, а также для отладки и профилирования я иногда использую VisualVM . Установите последние версии этих программ с помощью:

sdk install maven 3.6.3
sdk install gradle 6.2.2
sdk install visualvm 2.0

И они мгновенно доступны.

Использование SDKMAN! с ИДЕЕЙ

Чтобы выбрать конкретную версию Java для проекта в IntelliJ IDEA или Eclipse, вам нужно будет точно знать, где находится SDKMAN! распаковал ваши установки Java. Это $HOME/.sdkman/candidates/java с подкаталогами , названными в честь версий. Выбранная в данный момент версия Java также будет доступна как current в этом каталоге:

➜ ls -l ~/.sdkman/candidates/java
total 8
drwxr-xr-x 10 mjg mjg 4096 Jan 15 12:14 11.0.6.hs-adpt
drwxrwxr-x 8 sdk mjg 4096 Mar 4 12:43 14.ea.36-open
lrwxrwxrwx 1 mjg mjg 52 Mar 4 12:35 current -> /home/mjg/.sdkman/candidates/java/14.ea.36-open

Я рекомендую прояснить ситуацию, настроив проекты в вашей IDE на использование конкретной установки, а не “текущей”.

Для IntelliJ IDEA это можно сделать из диалогового окна “Структура проекта”. Либо выберите существующую версию из выпадающего списка, либо добавьте новую версию Java, выбрав “Создать…” в разделе “Project SDK”.:

Для Eclipse это делается путем перехода в раздел “Свойства проекта”, затем “Путь сборки Java”, “Библиотеки” и выбора “Modulepath”.:

Вы должны выбрать версию, которая уже существует (11.0.6.hs-adept в этом примере) и удалить ее, затем снова выберите “Modulepath”, “Добавить библиотеку” и выберите “Системная библиотека JRE” в диалоговом окне:

В диалоговом окне “Добавить библиотеку” выберите “Альтернативный JRE” и нажмите “Установленные JRES”, чтобы открыть другое диалоговое окно, которое позволяет вам выбрать существующую версию или добавить новую установку Java, перейдя туда, где она установлена:

Счастливого Взлома!

Использование SDKMAN! это может сэкономить вам много времени и проблем, если вы работаете с несколькими версиями Java и связанными с ними инструментами. Может быть, использовать это время, чтобы проверить, как создавать классные вещи с Java и Twilio например, бот WhatsApp, который распознает изображения или отправляет ежедневные SMS-напоминания ?

Я бы с удовольствием послушал, что вы строите, расскажите мне об этом в Твиттере @@Maximumload или по электронной почте на mgilliard@twilio.com , или разместите его на Reddit по адресу /r/twilio , чтобы весь мир мог его увидеть.

Оригинал: “https://dev.to/twilio/using-sdkman-to-work-with-multiple-versions-of-java-54km”