примечание: Эти решения работают для различных версий Java, включая Java 11 и новую Java 12, и для любой другой предыдущей версии 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 устанавливается в нестандартный каталог.
<<em> см. ниже «Установка и переключение версий с помощью SDKMAN» >
Установитьиспользование Jabba
Это также простая модель, в которой установка и переключение версий выполняются одним и тем же инструментом.Установка производится в нестандартный каталог.
<<em> см. Ниже «Установка и переключение версий с помощью Jabba» >
Установка вручную со страницы загрузки OpenJDK:
Загрузите OpenJDK для Mac OSX из http://jdk.java.net/
Разархивируйте архив OpenJDK и поместите полученную папку (т.е. jdk-12.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 JavaZulu сертифицированные сборки 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
Соответствие виртуальных машин Java(5):12, x86_64: «OpenJDK 12» /Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home11, x86_64: «Java SE 11» /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home10.0.2, x86_64: «Java SE 10.0.2» /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home9, x86_64: «Java SE 9» /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home1.8.0_144, x86_64: «Java SE 8» /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
Вы также можете сообщить только местоположение определенной версии Java, используя -v
.Например для Java 12:
/usr/libexec/java_home -v 12
/ Библиотека / Java / JavaVirtualMachines / jdk-12.jdk / Contents / Home
Знание расположения установленных JDKтакже полезно при использовании таких инструментов, как JEnv, или при добавлении локальной установки в SDKMAN, или при связывании системного JDK в Jabba - и вам нужно знать, где их найти.
Если вам нужно найти JDK, установленныйдругие инструменты, проверьте эти места:
- SDKMAN устанавливает на
~/.sdkman/candidates/java/
- Jabba устанавливает на
~/.jabba/jdk
Переключение версий вручную
Исполняемый файл Java - это оболочка, которая будет использовать все, что настроено в JDK в JAVA_HOME
, так что вы можете изменить это, чтобы также изменить используемый JDK.
Например, если вы установили JDK от 12 до /Library/Java/JavaVirtualMachines/jdk-12.jdk
или установили Untar'd, если это наибольший номер версии, это уже должно быть значением по умолчанию, в противном случае вы можете просто установить:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-12.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)
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'
# default to Java 12
java12
Затем, чтобы изменить версии, просто используйте псевдоним.
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-12.jdk/Contents/Home
Установите глобальную версию с помощью этой команды:
jenv global 12
Вы также можете добавить другиесуществующих версий, использующих jenv add
аналогичным образом, и перечислите те, которые доступны.Например Java 8:
jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
jenv versions
См. JEnv docs для получения дополнительных команд.Теперь вы можете переключаться между любыми версиями 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 12 с помощью SDKMAN:
sdk install java 12.0.0-open
Сделать 12 версией по умолчанию:
sdk default java 12.0.0-open
Или переключиться на 12 для сеанса:
sdk use java 12.0.0-open
Вы можете получить список доступных версий для установки, используя команду list:
sdk list java
И установить дополнительные версии, такие как JDK 8:
sdk install java 8.0.181-oracle
SDKMAN может работать с ранее установленными существующимиверсии.Просто выполните локальную установку с указанием собственной метки версии и расположения JDK:
sdk install java my-local-12 /Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home
и используйте ее свободно:
sdk use java my-local-12
Более подробная информация доступна в 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
для вас при изменении версии.