Як встановити Java на MacOS
З зміною моделі релізів Java в червні 2018 часто виникає необхідність мати декілька версій Java зі змогою швидко переключатись між версіями. В даній статі пропоную розглянути встановлення декількох версій Java та переключання між ними за допомогою змінної JAVA_HOME
.
Спочатку знайдемо вже встановлені JDK:
/usr/libexec/java_home -V
Приклад виводу результату команди:
Matching Java Virtual Machines (3):
17.0.5 (x86_64) "Oracle Corporation" - "Java SE 17.0.5" /Library/Java/JavaVirtualMachines/jdk-17.0.5.jdk/Contents/Home
11.0.16.1 (x86_64) "Oracle Corporation" - "Java SE 11.0.16.1" /Library/Java/JavaVirtualMachines/jdk-11.0.16.1.jdk/Contents/Home
1.8.0_202 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-17.0.5.jdk/Contents/Home
Тепер треба створити посилання на кожну з вірсій Java для майбутніх аліасів. Для кожної версіх можна взяти тільки унікальні перші символи. Наприклад, для Java 11 можна взяті тільки перші два симовли 11
. Якщо 11-х версій більше ніж одна, треба вказувати таким чином щоб однозначно можна було ідентифікувати потрібну версію.
Для навеленого вище виводу результат буде наступним:
/usr/libexec/java_home -v 1.8
/usr/libexec/java_home -v 11
/usr/libexec/java_home -v 17
Далі створюємо профіль для командного рядка. Для Bash це буде мати вигляд ~/.bash_profile
:
# aliase commands to enable easy setting of JDK version
alias setJDK8='export JAVA_HOME=`/usr/libexec/java_home -v 1.8`'
alias setJDK11='export JAVA_HOME=`/usr/libexec/java_home -v 11`'
alias setJDK17='export JAVA_HOME=`/usr/libexec/java_home -v 17`'
# set to the default JDK
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
SDK Man
Також можна використати SDK Man
Встановлюємо SDK Man
:
curl -s "https://get.sdkman.io" | bash
Оновлення SDK Man
до останньої версії:
sdk selfupdate
Вивід всіх пакетів доступних до встановлення:
sdk ls
Вивід всіх доступних до встановлення версій JDK
:
sdk ls java
Встановлюємо конкретну версію Oracle JDK
:
sdk install java 21.0.2-oracle
Встановлюємо Java
останньої версії:
sdk install java
Встановлюємо версію за замовчуванням:
sdk default java 21.0.2-oracle
Встановлюємо JAVA_HOME
:
sdk home java current
Застосування змін:
source ~/.sdkman/bin/sdkman-init.sh
Робота з env
Створення env:
sdk env init
Активація env для текучої сесії терміналу:
sdk env
Видалення встановлених SDK
Видаляємо java
заданої версії:
sdk rm java 21.0.2-oracle
Очищення SDK Man
Видалення новин:
sdk flush broadcast
Видалення всіх невстановлених / видалених SDK:
sdk flush archives
Очищення теки з тимчасовими файлами:
sdk flush temp