Сменить версию java mac os

изменить версию java в macOS BigSur

Я не могу изменить версию java в macOS BigSur. у меня есть следующие версии:

Когда я выполняю эту команду

У меня есть следующие версии:

Я хочу перейти на java 1.8 по умолчанию, поэтому я выполняю эту команду:

А затем, когда я проверяю версию java:

У меня все еще есть старый (более высокий)

Почему не работает?

4 ответа

Пожалуйста, используйте команду ниже: —

Вам нужно отключить JAVA_HOME и установить JAVA_VERSION, тогда он работает.

Или если вам нужно установить JAVA_HOME, вам нужно отключить его перед вызовом /usr/libexec/java_home

Меня смутила та же проблема сегодня после обновления macOS до Big Sur.

На моем Mac есть два JDK: Oracle JDK 11 и Oracle JDK 8.

Тогда /usr/libexec/java_home всегда возвращает /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home и игнорирует другие аргументы, такие как -v 1.8

После некоторых тестов я обнаружил, что это происходит только тогда, когда на вашем Mac установлена ​​версия Oracle JDK 1.8.X.

Итак, я удалил Oracle JDK 1.8.x, /usr/libexec/java_home может вернуть правильный путь JDK 11.

Затем я попробовал AdoptOpenJDK 8, /usr/libexec/java_home может вернуть свой путь правильно, но игнорирует аргумент -v 11 , не может получить путь JDK 11.

Кажется, в команде java_home ЕСТЬ некоторые ошибки, если у вас только один JDK на вашем Mac — кроме Oracle JDK 8 — он должен работать нормально. Если у вас несколько JDK, возможно, он просто возвращает последний установленный путь JDK.

Так что либо оставьте только одну установку JDK, либо установите $JAVA_HOME env с абсолютным путем, все будет в порядке.

Я тоже. Так раздражал, он доставил мне неприятности. Кажется, он решается установкой «$ JAVA_VERSION». Пожалуйста, используйте команду ниже: —

Источник

Как установить или изменить версию Java (JDK) по умолчанию на OS X?

Как вы можете изменить версию Java по умолчанию на Mac?

Сначала запустите /usr/libexec/Java_home -V , который выведет что-то вроде следующего:

Выберите версию, которую вы хотите использовать по умолчанию ( 1.6.0_65-b14-462 для аргументов), затем:

или вы можете указать только основную версию, например:

Теперь, когда вы запустите Java -version , вы увидите:

Просто добавьте строку export Java_HOME… в файл инициализации вашей оболочки.

Этот ответ является попыткой ответить на вопрос: как управлять общесистемной версией Java _ (не только в текущей версии Shell), когда несколько версий JDK установлены в целях разработки на macOS El Capitan или новее (Сьерра, Хай Сьерра, Мохаве). Насколько я могу судить, ни один из текущих ответов не делает этого (*).

Как разработчик, я использую несколько JDK и хочу легко переключаться с одного на другой. Обычно у меня есть последняя стабильная версия для общего пользования и другие для тестов. Но я не хочу, чтобы система (например, когда я запускаю свою IDE) использовала последнюю версию «раннего доступа», которая у меня есть на данный момент. Я хочу контролировать систему по умолчанию, и она должна быть последней стабильной.

Следующий подход работает как минимум с Java 7–12 (ранний доступ на момент написания этой статьи), с Oracle JDK или OpenJDK (включая сборки По AdoptOpenJDK выпущен после середины октября 2018 года ).

Решение без сторонних инструментов:

  • оставьте все JDK в их расположении по умолчанию под /Library/Java/JavaVirtualMachines . Система выберет самую высокую версию по умолчанию.
  • Чтобы исключить выбор JDK по умолчанию, переименуйте его Contents/Info.plist в Info.plist.disabled . Этот JDK все еще может быть использован, когда $Java_HOME указывает на него, или явно указан в скрипте или конфигурации. Он будет просто игнорироваться системной командой Java .

Системный лаунчер будет использовать JDK с самой высокой версией среди тех, которые имеют файл Info.plist .

При работе в командной оболочке с альтернативным JDK выберите свой метод среди существующих ответов ( jenv или пользовательские псевдонимы/сценарии вокруг /usr/libexec/Java_home и т.д.).

(*) Текущие ответы либо устарели (больше не действительны для macOS El Capitan или Sierra), либо относятся только к одному JDK, либо не затрагивают общесистемный аспект. Многие объясняют, как изменить $Java_HOME , но это влияет только на текущую оболочку и то, что запускается оттуда. Это не повлияет на приложение, запущенное из панели запуска ОС (если вы не измените нужный файл и выйдите из системы/войдите в систему, что утомительно). То же самое для jenv, это круто и все такое, но, насколько я могу судить, оно просто меняет переменные окружения, поэтому оно имеет то же ограничение.

Читайте также:  Менеджер автозагрузок для windows 10

В дополнение к ответам, приведенным выше, я добавил следующие строки в свой .bash_profile , что делает его очень удобным для переключения (включая комментарий @ elektromin для Java 9):

После вставки выполните $ source .bash_profile

Я могу переключиться на Java 8, набрав следующее:

Маленькая рыбка на основе/usr/libexec/Java_home

Если вы не используете fish, вы можете сделать что-то подобное в bash:

Затем, чтобы переключиться между Java сделать:

Использовать jenv — это простой способ.

1. установить jenv

3.Симлинк путь JDK

4.Все все готово

установить по умолчанию:

Это немного сложно, но попробуйте выполнить шаги, описанные в Установка Java на OS X 10.9 (Mavericks) . По сути, вам придется обновить свой псевдоним до Java .

После установки JDK 1.7 вам нужно будет ввести Sudo ln -snf , чтобы изменить ссылку на текущую Java . Для этого откройте Терминал и введите команду:

Обратите внимание, что каталог jdk1.7.0_51.jdk может меняться в зависимости от установленной версии SDK.

Теперь вам нужно установить Java_HOME , чтобы указать, где был установлен jdk_1.7.0_xx.jdk . Снова откройте Терминал и введите:

Вы можете добавить строку export Java_HOME выше в свой файл .bashrc , чтобы Java постоянно находилась в вашем терминале

установить JDK, а не только JRE

TextEdit покажет вам пустую страницу, которую вы можете заполнить.

добавить в документ: export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

заменить на загруженную версию.

поместите это в ваш

/.profile и используйте его в своем терминале, например, setjdk 1.8 , setjdk 1.7 , setjdk 9 и т. д. и т. д.

Если у вас нет removeFromPath , то это:

Используйте jenv, это как менеджер среды Java. Это супер легко использовать и чистить

Для Mac выполните следующие действия:

Установка: Если вы используете bash, выполните следующие действия:

Добавьте нужные версии JVM в jenv:

jenv add /System/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home

Проверьте установленные версии:

Установите версию Java, которую вы хотите использовать:

С официальной страницы Apple Java_home (1) :

Если вы все еще не можете установить его. используя эту команду.

экспорт Java_HOME = /usr/libexec/Java_home -v 1.8

тогда вы должны использовать это.

экспорт Java_HOME = $(/usr/libexec/Java_home -v 1.8)

это обязательно сработает.

Сначала выясните, где вы храните переменные среды.

Шаги для настройки переменной среды: —

  1. Загрузите JDK с Java
  2. установить его двойным щелчком

Теперь настройте переменные окружения в вашем файле

а. Для emacs.profile вы можете использовать эту ссылку OR, см. Скриншот ниже

b. Для настройки профиля ZSH —

Все готово Теперь вы можете легко обновить или снизить версию Java.

JDK Switch Script

Я адаптировал ответ от @Alex выше и написал следующее, чтобы исправить код для Java 9.

Переключиться на Java 8

Переключиться на Java 9

Если вы используете fish, и вы используете mac, и вы хотите переключаться между JDK, то ниже для меня работает на mac.

Ответ @ kenglxn не сработал для меня, и я понял, что bcos не установил -g, который является глобальным!

Поместите ниже в

Чтобы узнать, какую версию/минорную версию вы установили, вы можете сделать:

На основе ответа @markhellewell я создал несколько псевдонимов, которые сделают это за вас. Просто добавьте их в свой загрузочный файл Shell

Вот как я это делаю на моем Linux (Ubuntu/Mint mate), думаю, Mac может сделать это аналогичным образом.

Установить и настроить

Шаги:

  • [Базовая — часть]
  • Загрузите jdk ( .tgz file) вручную.
  • Распакуйте и переименуйте правильно, в нужном месте.
    Например, /mnt/star/program/Java/jdk-1.8
  • Сделайте программную ссылку, которая будет изменена для переключения версии Java позже.
    Например, ln -s /mnt/star/program/Java/jdk-1.8 /mnt/star/program/Java/java
    Таким образом, /mnt/star/program/Java/java — это мягкая ссылка.
  • Установите Java_HOME в стартовом скрипте.
    Может использовать файл типа /etc/profile.d/eric.sh или просто использовать

/.bashrc .
Например, Java_HOME=/mnt/star/program/Java/java

  • Затем откройте новый Bash Shell. Java -version должен напечатать версию Java.
  • [Еще версия — часть]
  • При необходимости загрузите и установите больше версий Java, как описано выше.
    например
    /mnt/star/program/Java/jdk-11
  • [Переключатель — часть]
  • В

    /.bashrc определите переменную для различных версий Java.
    например
    _E_Java_HOME_11=’/mnt/star/program/Java/jdk-11′
    _E_Java_HOME_8=’/mnt/star/program/Java/jdk-8′
    # dir of default version,
    _E_Java_HOME_D=$_E_Java_HOME_8
    В

    /.bashrc определите команду для переключения версии Java.
    например
    ## switch Java version,
    alias jv11=»rm $Java_HOME; ln -s $_E_Java_HOME_11 $Java_HOME»
    alias jv8=»rm $Java_HOME; ln -s $_E_Java_HOME_8 $Java_HOME»
    # default Java version,
    alias jvd=»rm $Java_HOME; ln -s $_E_Java_HOME_D $Java_HOME»
    alias jv=»Java -version»
    В терминале source

    /.bashrc чтобы изменения вступили в силу.

  • Затем можно переключиться с помощью определенных команд.
  • Команды — сверху конфиг

    Команды:

    • jv11
      Переключиться на Java 11
    • jv8
      Переключиться на Java 8
    • jvd
      Переключиться на версию Java по умолчанию, которая обозначена _E_Java_HOME_D , определенной выше.
    • jv
      Показать версию Java.

    Пример вывода:

    Механизм

    • Он переключается путем изменения программной ссылки, которая используется как Java_HOME .

    Подсказки

    На моей машине, когда я устанавливаю jdk вручную, я сохраняю минорную версию, затем делаю мягкую ссылку с основной версией, но без минорной версии.
    например
    // это фактический каталог,
    jdk1.8.0_191

    // это мягкая ссылка на jdk1.8.0_191
    jdk-8

    // это мягкая ссылка на jdk-8 или jdk-11
    Java

    Я определяю псевдоним команды в

    /.bashrc , но определяю переменную в отдельном файле.
    Я использую

    /.eric_var для определения переменных, и

    /.bashrc будет его источником (например, source $HOME/.eric_var ).

    Источник

    Как установить или изменить версию Java (JDK) по умолчанию на OS X?

    Как вы можете изменить версию Java по умолчанию на Mac?

    Первый запуск, /usr/libexec/java_home -V который выдаст что-то вроде следующего:

    Выберите версию, которую вы хотите использовать по умолчанию ( 1.6.0_65-b14-462 для аргументов), затем:

    или вы можете указать только основную версию, например:

    Теперь, когда вы бежите, java -version вы увидите:

    Добавить export JAVA_HOME… строку в файл инициализации вашей оболочки.

    Для Баша (как утверждает антоних ):

    Для рыбы (как заявлено ормурином)

    Этот ответ является попыткой решить: как управлять java-версией в масштабе всей системы (не только в запущенной в данный момент оболочке), когда несколько версий JDK установлены для целей разработки на macOS El Capitan или более поздней (Sierra, High Sierra, Mojave) . Насколько я могу судить, ни один из текущих ответов не делает этого (*).

    Как разработчик, я использую несколько JDK и хочу легко переключаться с одного на другой. Обычно у меня есть последняя стабильная версия для общего пользования и другие для тестов. Но я не хочу, чтобы система (например, когда я запускаю свою IDE) использовала последнюю версию «раннего доступа», которая у меня есть на данный момент. Я хочу контролировать систему по умолчанию, и она должна быть последней стабильной.

    Следующий подход работает как минимум с Java 7-12 (ранний доступ на момент написания этой статьи), с Oracle JDK или OpenJDK (включая сборки AdoptOpenJDK, выпущенные после середины октября 2018 г. ).

    Решение без сторонних инструментов:

    • оставить все JDK в их расположении по умолчанию, под /Library/Java/JavaVirtualMachines . Система выберет самую высокую версию по умолчанию.
    • Чтобы исключить выбор JDK по умолчанию, переименуйте его Contents/Info.plist в Info.plist.disabled . Этот JDK все еще можно использовать, когда $JAVA_HOME на него указывают, или явно указывать в сценарии или конфигурации. Это будет просто проигнорировано командой системы java .

    Система запуска будет использовать JDK с самой высокой версией среди тех, которые имеют Info.plist файл.

    При работе в оболочке с альтернативным JDK выберите свой метод среди существующих ответов ( jenv или пользовательских псевдонимов / сценариев /usr/libexec/java_home и т. Д.).

    (*) Текущие ответы либо устарели (больше не действительны для macOS El Capitan или Sierra), либо относятся только к одному JDK, либо не затрагивают общесистемный аспект. Многие объясняют, как измениться $JAVA_HOME , но это влияет только на текущую оболочку и то, что запускается оттуда. Это не повлияет на приложение, запущенное из панели запуска ОС (если вы не измените нужный файл и не выйдете из системы / не авторизованы), что утомительно. То же самое для jenv, это круто и все такое, но, насколько я могу судить, оно просто меняет переменные окружения, поэтому оно имеет то же ограничение.

    В дополнение к ответам, приведенным выше, я добавил следующие строки в мой .bash_profile (или .zshrc для MacOS 10.15+), что делает его очень удобным для переключения (включая комментарий @ elektromin для java 9):

    После вставки выполните $ source .bash_profile

    Я могу переключиться на Java 8, набрав следующее:

    Маленькая рыбка на основе / usr / libexec / java_home

    Если вы не используете fish, вы можете сделать что-то подобное в bash:

    Затем, чтобы переключиться между Java сделать:

    Это немного сложно, но попробуйте выполнить шаги, описанные в Установка Java на OS X 10.9 (Mavericks) . По сути, вам придется обновить свой псевдоним до java .

    После установки JDK 1.7 вам нужно будет сделать sudo ln -snf , чтобы изменить ссылку на текущую java . Для этого откройте Терминал и введите команду:

    Обратите внимание, что каталог jdk1.7.0_51.jdk может меняться в зависимости от установленной версии SDK.

    Теперь вам нужно JAVA_HOME указать, где jdk_1.7.0_xx.jdk был установлен. Откройте снова Терминал и введите:

    Вы можете добавить export JAVA_HOME строку выше в вашем .bashrc файле, чтобы иметь Java постоянно в вашем терминале

    Использовать jenv — это простой способ.

    1. установить jenv

    3.Симлинк путь JDK

    4.Все все готово

    установить по умолчанию:

    установить JDK, а не только JRE

    TextEdit покажет вам пустую страницу, которую вы можете заполнить.

    добавить в документ: export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home

    (замените jdk1.8.0_144.jdk загруженной версией)

    Используйте jenv, это как менеджер среды Java. Это супер легко использовать и чистить

    Для Mac выполните следующие действия:

    Установка: Если вы используете bash, выполните следующие действия:

    Добавьте нужные версии JVM в jenv:

    Проверьте установленные версии:

    Установите версию Java, которую вы хотите использовать:

    поместите это в ваш

    / .profile и используйте его в своем терминале, например setjdk 1.8 , setjdk 1.7 и setjdk 9 т. д. и т. д.

    Если у вас нет, removeFromPath то это:

    Четыре простых шага с использованием терминала для людей, которые используют процесс по умолчанию .. 🙂

    echo $JAVA_HOME дает вам текущий дом Java. Например: /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/

    cd /Library/Java/JavaVirtualMachines/ перенесет вас в папку, где вы обычно устанавливаете jdks (это может отличаться для ваших машин)

  • ls показывает вам доступные папки ( как правило , это будет иметь номер версии, например: jdk1.8.0_191.jdk openjdk-11.0.2.jdk )
  • export JAVA_HOME=’/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home’ поменяю java домой ..
  • добавить следующую команду в

    macOS El Capitan или новее выберет более высокую версию JDK, доступную в /Library/Java/JavaVirtualMachines , так что для понижения версии вы можете переименовать файл Info.plist во что-то похожее, Info.plist.disabled чтобы ОС выбрала предыдущую версию.

    Если вы все еще не можете установить его. используя эту команду.

    экспорт JAVA_HOME = /usr/libexec/java_home -v 1.8

    тогда вы должны использовать это.

    экспорт JAVA_HOME = $(/usr/libexec/java_home -v 1.8)

    это обязательно сработает.

    Сначала выясните, где вы храните переменные среды.

    Шаги по настройке переменной среды: —

    1. Скачать JDK от JAVA
    2. установить его двойным щелчком

    Теперь настройте переменные окружения в вашем файле

    а. Для emacs.profile вы можете использовать эту ссылку или увидеть скриншот ниже

    б. Для настройки профиля ZSH —

    Все готово Теперь вы можете легко обновить или снизить версию JAVA.

    JDK Switch Script

    Я адаптировал ответ от @Alex выше и написал следующее, чтобы исправить код для Java 9.

    Переключиться на Java 8

    Переключиться на Java 9

    Вы можете добавить его в свой .bash_profile, чтобы установить версию по умолчанию.

    Если вы используете fish, и вы используете mac, и вы хотите переключаться между JDK, то ниже для меня работает на mac.

    Ответ @ kenglxn не сработал для меня, и я понял, что bcos не установил -g, который является глобальным!

    Поместите ниже в

    / .config / fish / config.fish

    Чтобы узнать, какую версию / минорную версию вы установили, вы можете сделать:

    Если у вас есть несколько версий, и вы хотите что-то запустить с использованием определенной версии, используйте этот пример:

    На основе ответа @markhellewell я создал несколько псевдонимов, которые сделают это за вас. Просто добавьте их в свой файл запуска оболочки

    Вот как я делаю это на моем Linux (Ubuntu / Mint mate) , я думаю, Mac может сделать это аналогичным образом.

    Установить и настроить

    шаги:

    • [Основное — часть]
    • Загрузите jdk ( файл .tgz ) вручную.
    • Распакуйте и переименуйте правильно, в нужном месте.
      например /mnt/star/program/java/jdk-1.8
    • Сделайте программную ссылку, которая будет изменена для переключения версии Java позже.
      например ln -s /mnt/star/program/java/jdk-1.8 /mnt/star/program/java/java
      Таким образом , /mnt/star/program/java/java это мягкая ссылка.
    • Установите JAVA_HOME в стартовом скрипте.
      Может использовать файл, как /etc/profile.d/eric.sh , или просто использовать

    /.bashrc .
    например JAVA_HOME=/mnt/star/program/java/java

  • Затем откройте новую оболочку bash. java -version должен напечатать версию Java.
  • [Больше версия — часть]
  • При необходимости загрузите и установите больше версий Java, как описано выше.
    например
    /mnt/star/program/java/jdk-11
  • [Переключатель — часть]
  • В

    /.bashrc , определить переменную для различных версий Java.
    например
    _E_JAVA_HOME_11=’/mnt/star/program/java/jdk-11′
    _E_JAVA_HOME_8=’/mnt/star/program/java/jdk-8′
    # dir of default version,
    _E_JAVA_HOME_D=$_E_JAVA_HOME_8
    В

    /.bashrc , определите команду для переключения версии Java.
    например
    ## switch java version,
    alias jv11=»rm $JAVA_HOME; ln -s $_E_JAVA_HOME_11 $JAVA_HOME»
    alias jv8=»rm $JAVA_HOME; ln -s $_E_JAVA_HOME_8 $JAVA_HOME»
    # default java version,
    alias jvd=»rm $JAVA_HOME; ln -s $_E_JAVA_HOME_D $JAVA_HOME»
    alias jv=»java -version»
    В терминале, source

    /.bashrc чтобы изменения вступили в силу.

  • Затем можно переключиться с помощью определенных команд.
  • Команды — сверху конфиг

    Команды:

    • jv11
      Переключиться на Java 11
    • jv8
      Переключиться на Java 8
    • jvd
      Переключиться на версию Java по умолчанию, которая обозначена как _E_JAVA_HOME_D определено выше.
    • jv
      Показать версию Java.

    Пример вывода:

    Механизм

    • Он переключается путем изменения программной ссылки, которая используется как JAVA_HOME .

    Советы

    На моей машине, когда я устанавливаю jdk вручную, я сохраняю минорную версию, затем делаю мягкую ссылку с основной версией, но без минорной версии.
    например,
    // это фактический каталог,
    jdk1.8.0_191

    // это мягкая ссылка на jdk1.8.0_191
    jdk-8

    // это мягкая ссылка на jdk-8 или jdk-11
    java

    Я определяю псевдоним команды

    /.bashrc , но определяю переменную в отдельном файле.
    Я использую

    /.eric_var для определения переменных, и

    /.bashrc будет его источником (например source $HOME/.eric_var ).

    Источник

    Читайте также:  Настройка разметки дисков kali linux
    Оцените статью