Ответ 1
примечание: Эти решения работают для различных версий 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, Jabba или ручной установкой. Переключение может быть выполнено с помощью JEnv, SDKMAN, Jabba или вручную, установив JAVA_HOME
. Все они описаны ниже.
Установка
Во-первых, установите Java, используя любой метод, который вы предпочитаете, включая Homebrew, SDKMAN или ручную установку файла tar.gz. Преимущества ручной установки заключаются в том, что расположение JDK можно разместить в стандартизированном месте для Mac OSX.
Установить с помощью SDKMAN
Это простая модель в том смысле, что она обрабатывает как установку, так и переключение версий с оговоркой, что она устанавливает JDK в нестандартный каталог.
& lt; см. ниже "Установка и переключение версий с помощью SDKMAN">
Установить с помощью Jabba
Это также простая модель, поскольку установка и переключение версий выполняются одним и тем же инструментом. Установки производятся в нестандартном каталоге.
& lt; см. ниже "Установка и переключение версий с помощью Jabba">
Установите вручную со страницы загрузки OpenJDK:
Загрузите OpenJDK для Mac OSX из http://jdk.java.net/ (например, Java 13)
Разархивируйте tar-архив OpenJDK и поместите полученную папку (например,
jdk-13.jdk
) в папку/Library/Java/JavaVirtualMachines/
, поскольку это стандартное и ожидаемое место установки JDK. Вы также можете установить в любом месте в реальности.
Установить с помощью Homebrew
Версия Java, доступная в Homebrew Cask до 3 октября 2018 года, действительно была Oracle 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. Zulu на 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
Matching Java Virtual Machines (6):
13, x86_64: "OpenJDK 13" /Library/Java/JavaVirtualMachines/openjdk-13.jdk/Contents/Home 12, x86_64: "OpenJDK 12" /Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home
11, x86_64: "Java SE 11" /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
10.0.2, x86_64: "Java SE 10.0.2" /Library/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"/Library/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.
Например, если вы установили или удалили 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 [email protected]
Используйте это:
jabba use [email protected]
Вы также можете использовать псевдонимы версий, ссылаться на уже установленный JDK и найти сочетание интересных JDK, таких как GraalVM, Adopt JDK, IBM JDK и других. Полное руководство по использованию также доступно на главной странице.
Jabba будет автоматически управлять вашими PATH
и JAVA_HOME
для вас при смене версий.