- Как установить Java на Mac OSX, позволяющую переключать версии?
- Монтаж
- Установить с SDKMAN
- Установить с помощью Jabba
- Установите вручную со страницы загрузки OpenJDK:
- Установить с Homebrew
- Другие варианты установки:
- Где мой JDK.
- Переключение версий вручную
- Переключение версий с JEnv
- Установка и переключение версий с помощью SDKMAN
- Установка и переключение версий с Jabba
- Как установить или изменить версию Java (JDK) по умолчанию на OS X?
- Решение без сторонних инструментов:
- JDK Switch Script
- Переключиться на Java 8
- Переключиться на Java 9
- Установить и настроить
- Команды — сверху конфиг
- Механизм
- Советы
Как установить Java на Mac OSX, позволяющую переключать версии?
Я хочу установить OpenJDK Java на Mac OSX и заставить его работать вместе с другими JDK, так как это более новая версия. В настоящее время я скачал tar.gz и поместил его в мой путь, но это сложно поддерживать.
Единственная другая установка, которую я обнаружил, которая делает больше вещей автоматически, — это установка через бочку Homebrew. Похоже, только текущая версия:
Так что я могу установить его оттуда, но что тогда? Я застрял только с новой версией?
примечание: эти решения работают для различных версий 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 в нестандартный каталог.
Установить с помощью 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, если вы еще этого не сделали. Убедитесь, что оно обновлено:
Добавьте каску бочек, если вы еще этого не сделали (или вы больше не видите старые версии Java на шаге 3):
и для версий AdoptOpenJDK добавьте этот кран:
Эти бочки часто меняют свои версии Java, и могут быть другие ответвления с дополнительными версиями Java.
Ищите устанавливаемые версии:
или для версий AdoptOpenJDK:
Проверьте информацию о версии, которая будет установлена:
или для версии AdoptOpenJDK:
Установить конкретную версию JDK , таких как java11 , adoptopenjdk8 или просто java или adoptopenjdk для тока. Например:
Вы также можете использовать полный путь к старым версиям:
И они будут установлены в /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, установленных в расположениях системы по умолчанию, используйте:
Соответствие виртуальных машин Java (6):
13, x86_64: «OpenJDK 13» /Library/Java/JavaVirtualMachines/openjdk-13.jdk/Contents/Home 12, x86_64: «OpenJDK 12» / Библиотека / 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» / Библиотека / 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» / Библиотека /Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
Вы также можете сообщить только местоположение конкретной версии Java, используя -v . Например для Java 13:
Знание расположения установленных JDK также полезно при использовании таких инструментов, как JEnv, или при добавлении локальной установки в SDKMAN, или при связывании системного JDK в Jabba — и вам необходимо знать, где их найти.
Если вам нужно найти JDK, установленный другими инструментами, проверьте эти места:
- SDKMAN устанавливается на
/.sdkman/candidates/java/
Джабба устанавливает в
Переключение версий вручную
Исполняемый файл Java — это оболочка, которая будет использовать все, что настроено в JDK JAVA_HOME , так что вы можете изменить это, чтобы также изменить используемый JDK.
Например, если вы установили или удалили JDK 13, чтобы, /Library/Java/JavaVirtualMachines/jdk-13.jdk если это самый большой номер версии, он уже был по умолчанию, если нет, вы можете просто установить:
И теперь, где бы ни находился исполняемый файл Java, он увидит это и будет использовать правильный JDK.
Использование /usr/libexec/java_home утилиты, как описано выше, помогает создавать псевдонимы или запускать команды для изменения версий Java путем определения местоположений различных установок JDK. Например, создание псевдонимов оболочки в вашем .profile или .bash_profile изменить JAVA_HOME для вас:
Затем, чтобы изменить версию, просто используйте псевдоним.
Конечно, настройка JAVA_HOME вручную тоже работает!
Переключение версий с JEnv
JEnv ожидает, что Java JDK уже существует на компьютере и может находиться в любом месте. Обычно вы найдете установленные Java JDK в /Library/Java/JavaVirtualMachines/ . JEnv позволяет установить глобальную версию Java, одну для текущей оболочки и локальную версию для каждого каталога, что удобно, когда некоторые проекты требуют версий, отличных от других.
Установите JEnv, если вы этого еще не сделали, инструкции на сайте http://www.jenv.be/ для ручной установки или использования Homebrew.
Добавьте любую версию Java в JEnv ( настройте каталог, если вы разместили это в другом месте ):
Установите глобальную версию с помощью этой команды:
Вы также можете добавить другие существующие версии, используя jenv add аналогичным образом, и перечислить те, которые доступны. Например Java 8:
Посмотрите документы JEnv для большего количества команд. Теперь вы можете переключаться между любыми версиями Java (Oracle, OpenJDK и т. Д.) В любое время для всей системы, для оболочек или для локального каталога.
Чтобы облегчить управление JAVA_HOME при использовании JEnv, вы можете добавить плагин экспорта, который сделает это за вас.
Плагин экспорта может не корректироваться, JAVA_HOME если он уже установлен, поэтому вам может потребоваться очистить эту переменную в своем профиле, чтобы ею можно было управлять с помощью JEnv.
Вы также можете использовать jenv exec
для запуска отдельных команд JAVA_HOME и PATH правильно установить для этой команды, что может включать в себя открытие другой оболочки.
Установка и переключение версий с помощью SDKMAN
SDKMAN немного отличается и обрабатывает как установку, так и переключение. SDKMAN также помещает установленные JDK в свое собственное дерево каталогов, которое обычно
/.sdkman/candidates/java . SDKMAN позволяет установить глобальную версию по умолчанию и версию, специфичную для текущей оболочки.
Перечислите доступные версии Java, чтобы убедиться, что вы знаете идентификатор версии
Установите одну из этих версий, например, Java 13:
Сделайте 13 версией по умолчанию:
Или переключитесь на 13 для сеанса:
Когда вы перечислите доступные версии для установки с помощью команды list, вы увидите большое разнообразие дистрибутивов Java:
И установите дополнительные версии, такие как JDK 8:
SDKMAN может работать с ранее установленными существующими версиями. Просто выполните локальную установку, указав собственную метку версии и местоположение JDK:
И используйте это свободно:
Дополнительная информация доступна в Руководстве по использованию SDKMAN вместе с другими SDK, которые можно установить и управлять ими.
SDKMAN будет автоматически управлять вашим PATH и JAVA_HOME для вас при смене версий.
Установка и переключение версий с Jabba
Jabba также выполняет как установку, так и переключение. Jabba также помещает установленные JDK в свое собственное дерево каталогов, которое обычно
Список доступных JDK
Установите Java JDK 12
Вы также можете использовать псевдонимы версий, связываться с уже установленными JDK и найти сочетание интересных JDK, таких как GraalVM, Adopt JDK, IBM JDK и других. Полное руководство по использованию также доступно на домашней странице.
Jabba будет автоматически управлять вашим PATH и JAVA_HOME для вас при изменении версии.
Источник
Как установить или изменить версию 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 (это может отличаться для ваших машин)
добавить следующую команду в
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)
это обязательно сработает.
Сначала выясните, где вы храните переменные среды.
Шаги по настройке переменной среды: —
- Скачать JDK от JAVA
- установить его двойным щелчком
Теперь настройте переменные окружения в вашем файле
а. Для 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
например
/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 ).
Источник