
Mac OS по умолчанию использует системную версию Java, установленную через /Library/Java/JavaVirtualMachines. Однако при разработке или запуске специфичных приложений часто возникает необходимость переключаться между несколькими версиями JDK. Это можно сделать с помощью встроенных инструментов терминала и переменных окружения, без удаления старых версий.
Проверить доступные версии Java можно командой /usr/libexec/java_home -V. Она выведет список всех установленных JDK и их путей. Например, путь к Java 11 может выглядеть как /Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home.
Для временного переключения на нужную версию Java используйте команду: export JAVA_HOME=`/usr/libexec/java_home -v 11`. Это установит переменную окружения JAVA_HOME для текущей сессии терминала. Чтобы убедиться, что версия изменилась, выполните java -version.
Если требуется постоянное изменение версии Java, добавьте ту же строку export JAVA_HOME=… в файл ~/.zshrc или ~/.bash_profile в зависимости от используемой оболочки. После этого перезапустите терминал или выполните source ~/.zshrc для применения изменений.
Установка новых версий JDK удобнее всего через Homebrew: brew install openjdk@17. После установки обязательно добавьте путь вручную в переменную JAVA_HOME, так как Homebrew не делает этого автоматически.
Проверка установленных версий Java через терминал

Откройте терминал и выполните команду:
/usr/libexec/java_home -V
Она выведет список всех доступных версий JDK, установленных в системе. Например:
Matching Java Virtual Machines (3):
17.0.2 (x86_64) "Oracle Corporation" - "JDK 17.0.2" /Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home
11.0.13 (x86_64) "AdoptOpenJDK" - "JDK 11.0.13" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
1.8.0_321 (x86_64) "Oracle Corporation" - "JDK 8u321" /Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home
Каждая строка содержит версию, архитектуру, поставщика и путь установки. Запомните путь нужной версии для последующего использования.
Дополнительно можно проверить активную версию Java:
java -version
Команда покажет текущую используемую JVM, например:
java version "11.0.13" 2021-10-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.13+8-LTS-202)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.13+8-LTS-202, mixed mode)
Если путь из java -version не совпадает с желаемым, настройте переменную окружения JAVA_HOME для переключения.
Установка новой версии Java с помощью Homebrew
Для установки Java через Homebrew, сначала убедитесь, что Homebrew установлен. Выполните в терминале команду brew —version. Если Homebrew не установлен, выполните:
/bin/bash -c «$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)»
Добавьте cask-поддержку, если она не активирована:
brew tap homebrew/cask-versions
Чтобы установить нужную версию Java, например Java 17, выполните:
brew install —cask temurin17
Для Java 21 используйте:
brew install —cask temurin21
Проверьте установку:
/Library/Java/JavaVirtualMachines/ – здесь появится новая директория с установленной версией.
Для использования установленной версии по умолчанию, добавьте в файл ~/.zshrc или ~/.bash_profile (в зависимости от используемого shell) следующую строку:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
Примените изменения:
source ~/.zshrc или source ~/.bash_profile
Проверьте текущую активную версию:
java -version
Настройка переменной окружения JAVA_HOME

Откройте терминал и выполните команду /usr/libexec/java_home -V, чтобы увидеть установленные версии Java и их пути. Скопируйте нужный путь, например: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home.
Откройте файл конфигурации оболочки. Для Bash – ~/.bash_profile, для Zsh – ~/.zshrc. Если файла нет – создайте его.
Добавьте строку: export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home". Чтобы сделать эту версию приоритетной, добавьте: export PATH="$JAVA_HOME/bin:$PATH".
Сохраните файл и примените изменения командой source ~/.zshrc или source ~/.bash_profile.
Проверьте результат: echo $JAVA_HOME и java -version должны соответствовать выбранной версии.
Переключение между версиями Java с использованием jenv
Установите jenv через Homebrew: brew install jenv. После установки добавьте переменные окружения в файл ~/.zshrc или ~/.bash_profile:
export PATH="$HOME/.jenv/bin:$PATH"eval "$(jenv init -)"
Перезапустите терминал или выполните source ~/.zshrc. Убедитесь, что jenv работает: jenv doctor.
Добавьте установленные версии Java в jenv. Определите их местоположение с помощью /usr/libexec/java_home -V, затем добавьте нужные директории, например:jenv add /Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home
Проверьте доступные версии: jenv versions. Чтобы установить глобальную версию, выполните jenv global 17. Для текущей сессии: jenv shell 11. Для конкретного проекта – jenv local 21 (создаст файл .java-version в директории).
Убедитесь, что jenv управляет Java-путём: jenv enable-plugin export, затем перезапустите терминал. Проверьте текущую активную версию командой java -version.
Применение выбранной версии Java для конкретного проекта
Для запуска проекта с определённой версией Java на Mac OS, настройте переменные окружения вручную или используйте инструменты управления версиями.
- Установите нужную версию Java через
sdkmanилиbrew, если она ещё не установлена. - Проверьте путь установки: например,
/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home. - В каталоге проекта создайте или отредактируйте файл
.java-version(если используетсяjenv) и укажите нужную версию, например:17.0.
Если вы не используете jenv, настройте Java вручную для проекта:
- Создайте скрипт запуска в корне проекта, например,
run.sh. - В скрипте укажите переменные окружения:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH - Добавьте команду сборки или запуска проекта, например:
./gradlew run
Для Maven-проектов укажите путь к Java через переменную среды JAVA_HOME до вызова mvn. Для IntelliJ IDEA задайте JDK проекта в Project Structure → SDKs и выберите соответствующую версию.
Для проверки используемой версии выполните команду java -version внутри проекта или через скрипт.
Удаление ненужных версий Java с системы

Откройте терминал и выполните команду /usr/libexec/java_home -V, чтобы увидеть список всех установленных версий Java с указанием путей.
Каждая установленная версия расположена в директории /Library/Java/JavaVirtualMachines/. Для удаления достаточно использовать команду sudo rm -rf с указанием полного пути. Например, чтобы удалить Java 17, выполните sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-17.jdk.
Повторите команду /usr/libexec/java_home -V, чтобы убедиться, что версия удалена. Если она всё ещё отображается, проверьте наличие символических ссылок в /usr/local/bin и удалите их вручную, если они ссылаются на устаревшие версии.
Рекомендуется также проверить переменные окружения в файлах ~/.zshrc, ~/.bash_profile или ~/.bashrc. Удалите или скорректируйте строки с JAVA_HOME, если они указывают на удалённую версию.
Вопрос-ответ:
Как узнать, какая версия Java установлена на Mac OS?
Для того чтобы узнать текущую версию Java на Mac OS, откройте Терминал и введите команду `java -version`. В результате вы увидите информацию о версии установленной Java, например: «java version 1.8.0_281».
Как сменить версию Java на Mac OS, если мне нужно использовать другую версию?
Чтобы сменить версию Java на Mac, вам нужно установить нужную версию с помощью официального сайта Oracle или через менеджер пакетов Homebrew. После установки вы можете переключаться между версиями с помощью команды `export JAVA_HOME=$(/usr/libexec/java_home -v <версия>)`, где `<версия>` — это версия, которую вы хотите использовать, например `1.8` или `11`.
Можно ли установить несколько версий Java на Mac и как их переключать?
Да, на Mac OS можно установить несколько версий Java одновременно. Для этого используйте менеджер пакетов Homebrew или скачивайте версии с официального сайта. Чтобы переключаться между версиями, можно использовать команду `export JAVA_HOME=$(/usr/libexec/java_home -v <версия>)`, где вместо `<версия>` подставляете нужную, например, `1.8` или `17`. Также можно установить инструмент `jenv`, который упрощает процесс переключения версий Java.
Что делать, если после смены версии Java Mac OS всё равно использует старую версию?
Если после смены версии Java в Mac OS система продолжает использовать старую версию, убедитесь, что вы правильно установили переменную окружения `JAVA_HOME`. Откройте терминал и выполните команду `echo $JAVA_HOME`. Если она указывает на старую версию, попробуйте изменить её вручную, добавив в файл `~/.bash_profile` или `~/.zshrc` строку: `export JAVA_HOME=$(/usr/libexec/java_home -v <новая_версия>)`, где `<новая_версия>` — это версия, которую вы хотите использовать. После этого выполните команду `source ~/.bash_profile` или `source ~/.zshrc` для применения изменений. Перезапустите терминал и проверьте с помощью `java -version`.
