Как поменять версию java mac os

Как поменять версию java mac os

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 через терминал

Проверка установленных версий 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

Настройка переменной окружения 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 вручную для проекта:

  1. Создайте скрипт запуска в корне проекта, например, run.sh.
  2. В скрипте укажите переменные окружения:
    export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
  3. Добавьте команду сборки или запуска проекта, например:
    ./gradlew run

Для Maven-проектов укажите путь к Java через переменную среды JAVA_HOME до вызова mvn. Для IntelliJ IDEA задайте JDK проекта в Project Structure → SDKs и выберите соответствующую версию.

Для проверки используемой версии выполните команду java -version внутри проекта или через скрипт.

Удаление ненужных версий Java с системы

Удаление ненужных версий 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`.

Ссылка на основную публикацию