Примітка. Ці рішення працюють для різних версій Java, включаючи Java 8 та нову Java 13, а також для будь-якої іншої попередньої версії Java, охопленої перерахованими менеджерами версій. Сюди входять альтернативні JDK від OpenJDK, Oracle, IBM, Azul, Amazon Correto, Graal та багато іншого. Легко працювати з Java 7, Java 8, Java 9, Java 10, Java 11, Java 12 та Java 13!
У вас є кілька варіантів, як зробити встановлення, а також керувати комутацією JDK. Установка може бути зроблено з допомогою Homebrew, SDKMAN , Джабба або ручного регулювання. Перемикання може бути зроблено JEnv , SDKMAN , Джабба , або вручну установкою JAVA_HOME
. Все це описано нижче.
Установка
По-перше, встановіть Java за допомогою будь-якого способу, який ви бажаєте, включаючи Homebrew, SDKMAN або встановити файл tar.gz вручну. Переваги встановлення вручну полягає в тому, що розташування JDK можна розмістити в стандартизованому місці для Mac OSX.
Встановити за допомогою SDKMAN
Це проста модель, оскільки вона обробляє і встановлення, і комутацію версій, із застереженням, що вона встановлює JDK в нестандартний каталог.
< див. нижче "Встановлення та перемикання версій за допомогою SDKMAN" >
Встановити за допомогою Jabba
Це також проста модель в тому, що і установка, і комутація версій обробляються одним і тим же інструментом. Установки зроблені в нестандартний каталог.
< див. нижче "Встановлення та переключення версій за допомогою Jabba" >
Встановити вручну зі сторінки завантаження OpenJDK:
Завантажте OpenJDK для Mac OSX з http://jdk.java.net/ (наприклад, Java 13 )
Скасуйте тар OpenJDK і помістіть отриману папку (тобто jdk-13.jdk
) у свою /Library/Java/JavaVirtualMachines/
папку, оскільки це стандартне і очікуване місце встановлення JDK. Насправді ви також можете встановити де завгодно.
Встановити за допомогою Homebrew
Версія Java, доступна в Homebrew Cask, попередня до 3 жовтня 2018 року, справді була OV JVM. Однак тепер він був оновлений до OpenJDK. Не забудьте оновити Homebrew, і тоді ви побачите останню версію, доступну для встановлення.
встановіть Homebrew, якщо ви ще цього не зробили. Переконайтесь, що воно оновлено:
brew update
Додайте дотик, якщо ви ще цього не зробили (або більше не бачите старих версій Java з кроком №3):
brew tap homebrew/cask-versions
а для версій AdoptOpenJDK додайте цей дотик:
brew tap adoptopenjdk/openjdk
Ці бочки часто змінюють свої версії Java, і там можуть бути інші крани з додатковими версіями Java.
Шукайте інстальовані версії:
brew search java
або для версій AdoptOpenJDK:
brew search jdk
Перевірте деталі версії, яка буде встановлена:
brew cask info java
або для версії AdoptOpenJDK:
brew cask info adoptopenjdk
Встановити конкретну версію JDK , таких як java11
, adoptopenjdk8
або просто java
абоadoptopenjdk
для струму. Наприклад:
brew cask install java
Ви також можете використовувати повністю кваліфікований шлях до старих версій:
brew cask install homebrew/cask-versions/java11
І вони будуть встановлені, /Library/Java/JavaVirtualMachines/
і це традиційне місце розташування, яке очікується на Mac OSX.
Інші варіанти установки:
Деякі інші аромати openJDK:
Azul Systems Java Zulu сертифіковані збірки OpenJDK можна встановити, дотримуючись інструкцій на їхньому сайті .
Zulu® - це сертифікована збірка OpenJDK, яка повністю відповідає стандарту Java SE. Зулу є 100% відкритим кодом і вільно завантажується. Тепер розробники Java, системні адміністратори та кінцеві користувачі можуть користуватися всіма перевагами Java з відкритим кодом із гнучкістю розгортання та контролем за часом оновлення.
У складі Amazon Correto OpenJDK є простий у використанні інсталяційний пакет для версії 8 або версії 11 (приходять інші версії) та встановлюється в стандартний/Library/Java/JavaVirtualMachines/
каталог на Mac OSX.
Amazon Corretto - це безплатний, багатоплатформний, готовий до виробництва комплект Open Java Development Kit (OpenJDK). Corretto має довгострокову підтримку, яка буде включати підвищення продуктивності та виправлення безпеки. Amazon здійснює внутрішнє управління Corretto на тисячах виробничих послуг, а Corretto сертифіковано як сумісний зі стандартом Java SE. Завдяки Corretto ви можете розробляти та запускати програми Java на популярних операційних системах, включаючи Linux, Windows та macOS.
Де мій JDK?!?!
Щоб знайти місця раніше встановленого Java JDK, встановленого в стандартних системних місцях, використовуйте:
/usr/libexec/java_home -V
Відповідність віртуальних машин Java (6):
13, x86_64: "OpenJDK 13" /Library/Java/JavaVirtualMachines/openjdk-13.jdk/Contents/Home 12, x86_64: "OpenJDK 12" / Бібліотека / Java / JavaVirtualMachines / jdk-12 .jdk / Зміст / Головна
11, x86_64: "Java SE 11" /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
10.0.2, x86_64: "Java SE 10.0.2" / Бібліотека / Java / JavaVirtualMachines /jdk-10.0.2.jdk/Contents/Home
9, x86_64: "Java SE 9" /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
1.8.0_144, x86_64: "Java SE 8" / Бібліотека /Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
Ви також можете повідомити лише про місцезнаходження певної версії Java, використовуючи -v
. Наприклад для Java 13:
/usr/libexec/java_home -v 13
/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
Знання місця розташування встановлених JDK також корисне при використанні таких інструментів, як JEnv, або додаванні локальної установки до SDKMAN або пов'язуванні системи JDK в Jabba - і вам потрібно знати, де їх знайти.
Якщо вам потрібно знайти встановлений JDK іншими інструментами, перевірте ці місця:
- SDKMAN встановлюється в
~/.sdkman/candidates/java/
- Jabba встановлюється на
~/.jabba/jdk
Перемикання версій вручну
Виконаний файл Java - це обгортка, яка буде використовувати все те, що налаштовано JDK JAVA_HOME
, і ви можете змінити це, щоб також змінити, який JDK використовується.
Наприклад, якщо ви встановили або untar'd JDK 13 до, /Library/Java/JavaVirtualMachines/jdk-13.jdk
якщо це найвищий номер версії, він уже повинен бути типовим, якщо ні, ви не можете просто встановити:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
І тепер, будь-який виконуваний Java на шляху, це побачить і використовувати правильний JDK.
Використання /usr/libexec/java_home
утиліти, як описано раніше, допомагає створювати псевдоніми або виконувати команди для зміни версій Java шляхом визначення розташування різних установок JDK. Наприклад, створивши псевдоніми оболонки у своєму .profile
або .bash_profile
змінити JAVA_HOME
для вас:
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_9_HOME=$(/usr/libexec/java_home -v9)
export JAVA_10_HOME=$(/usr/libexec/java_home -v10)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_12_HOME=$(/usr/libexec/java_home -v12)
export JAVA_13_HOME=$(/usr/libexec/java_home -v13)
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java9='export JAVA_HOME=$JAVA_9_HOME'
alias java10='export JAVA_HOME=$JAVA_10_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
alias java12='export JAVA_HOME=$JAVA_12_HOME'
alias java13='export JAVA_HOME=$JAVA_13_HOME'
# default to Java 13
java13
Потім для зміни версій просто використовуйте псевдонім.
java8
java -version
версія java "1.8.0_144"
Звичайно, налаштування JAVA_HOME
працює і вручну!
Перемикання версій з JEnv
JEnv очікує, що Java JDK вже існують на машині і можуть знаходитися в будь-якому місці. Зазвичай ви знайдете встановлені Java JDK в/Library/Java/JavaVirtualMachines/
. JEnv дозволяє налаштувати глобальну версію Java, одну для поточної оболонки та локальну версію для кожного каталогу, яка зручна, коли для деяких проектів потрібні різні версії, ніж інші.
Встановіть JEnv, якщо ви ще цього не зробили, інструкції на сайті http://www.jenv.be/ щодо встановлення вручну або використання Homebrew.
Додайте будь-яку версію Java до JEnv ( відрегулюйте каталог, якщо ви розмістили це в іншому місці ):
jenv add /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
Встановіть вашу глобальну версію за допомогою цієї команди:
jenv global 13
Ви також можете додати інші існуючі версії, використовуючи jenv add
подібний спосіб, і перелічити ті, які є в наявності. Наприклад, Java 8:
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
jenv versions
Дивіться документи JEnv більше команд, . Тепер ви можете будь-коли переходити між будь-якими версіями Java (Oracle, OpenJDK, іншими) або для всієї системи, для оболонок або для локального каталогу.
Щоб керувати JAVA_HOME
використанням JEnv, ви можете додати плагін експорту, щоб зробити це за вас.
$ jenv enable-plugin export
You may restart your session to activate jenv export plugin echo export plugin activated
Експортний плагін може не коригуватися JAVA_HOME
якщо він уже встановлений, тому вам може знадобитися очистити цю змінну у своєму профілі, щоб ним керував JEnv.
Ви також можете використовувати jenv exec <command> <parms...>
для запуску окремих команд JAVA_HOME
та PATH
встановити правильно для цієї команди, яка може включати відкриття іншої оболонки.
Встановлення та перемикання версій за допомогою SDKMAN
SDKMAN дещо відрізняється і обробляє як встановлення, так і комутацію. SDKMAN також розміщує встановлені JDK у своє дерево каталогів, як правило~/.sdkman/candidates/java
. SDKMAN дозволяє встановити глобальну версію за замовчуванням та версію, характерну для поточної оболонки.
Встановіть SDKMAN з https://sdkman.io/install
Перелічіть наявні версії Java, щоб переконатися, що ви знаєте ідентифікатор версії
sdk list java
Встановіть одну з цих версій, наприклад, Java 13:
sdk install java 13.0.0-open
Зробіть 13 версією за замовчуванням:
sdk default java 13.0.0-open
Або переключіться на 13 для сеансу:
sdk use java 13.0.0-open
Коли ви перераховуєте доступні версії для встановлення за допомогою команди list, ви побачите широкий спектр розповсюджень Java:
sdk list java
І встановіть додаткові версії, такі як JDK 8:
sdk install java 8.0.181-oracle
SDKMAN може працювати з раніше встановленими існуючими версіями. Просто зробіть локальну установку, вказавши власну мітку версії та розташування JDK:
sdk install java my-local-13 /Library/Java/JavaVirtualMachines/jdk-13.jdk/Contents/Home
І користуйтеся ним вільно:
sdk use java my-local-13
Додаткову інформацію можна отримати в Посібнику з використання SDKMAN разом з іншими SDK, якими можна встановити та керувати.
SDKMAN автоматично керуватиме вами PATH
та JAVA_HOME
для вас під час зміни версій.
Встановлення та перемикання версій з Jabba
Jabba також обробляє як встановлення, так і комутацію. Jabba також розміщує встановлені JDK у своє дерево каталогів, як правило~/.jabba/jdk
.
Встановіть Jabba, дотримуючись інструкцій на домашній сторінці .
Список доступних JDK
jabba ls-remote
Встановіть Java JDK 12
jabba install openjdk@1.12.0
Використай це:
jabba use openjdk@1.12.0
Ви також можете називати імена версій псевдонімів, посилатися на вже встановлені JDK та знаходити поєднання цікавих JDK, таких як GraalVM, Adopt JDK, IBM JDK та ін. Повний посібник із використання також доступний на домашній сторінці.
Jabba автоматично керуватиме вашими PATH
та JAVA_HOME
для вас під час зміни версій.