Как установить Java 8 на Mac
Описание проблемы:
Здравствуйте!
Я столкнулся с проблемой при попытке использовать последнюю версию JavaFX, которая требует Java 8. У меня установлена IntelliJ 13 CE на Mac OS X 9 Mavericks. Я запустил установщик Oracle для Java 8, и, судя по всему, файлы были установлены по следующему пути:
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk
Однако предыдущие версии Java находятся по адресу:
/System/Library/Java/JavaFrameworks/jdk1.6....
Не могу понять, почему установщик помещает файлы в /Library
, а не в /System/Library
(и в чем между ними разница). При этом команда /usr/libexec/java_home
не находит установленную версию 1.8, что делает все найденные мной решения по настройке текущей версии Java неэффективными. Я пробовал создать символическую ссылку, чтобы сделать вид, что версия 1.8 на самом деле находится в пути /System/Library...
, но это не помогло. Команда /usr/libexec/java_home -V
по-прежнему выводит только старую версию Java 1.6.
Иронично, но панель управления "Java" в настройках системы показывает только Java 1.8!
Почему установщик Oracle не помещает файлы в правильное место? И как можно обойти эту проблему?
5 ответ(ов)
Обратите внимание: Oracle Java 8/9/10 больше недоступна для публичной загрузки (изменение лицензии).
Сначала установите и обновите brew через Терминал:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew tap homebrew/cask-versions
brew update
НОВОЕ с июня 2019 года
Для установки JDK от AdoptOpenJDK используйте следующие команды:
brew tap adoptopenjdk/openjdk
brew install --cask adoptopenjdk8
brew install --cask adoptopenjdk9
brew install --cask adoptopenjdk10
brew install --cask adoptopenjdk11
СТАРОЕ
Java 8 можно установить следующей командой:
brew install --cask java8
Для установки последней версии Java используйте:
brew install --cask java
Я только что сделал это на своем MacBook Pro и пришлось использовать следующие команды:
$ brew tap homebrew/cask-versions
$ brew cask install java8
Таким образом, я установил Java 8. Не забудьте, что для работы с brew cask
может потребоваться установка Homebrew версии 2.6.0 и выше.
Предположение: у вас Mac и уже установлен Homebrew.
Установите cask (на Homebrew 0.9.5 или выше cask уже включен, так что этот шаг можно пропустить):
$ brew tap caskroom/cask $ brew tap caskroom/versions
Чтобы установить последнюю версию Java:
$ brew cask install java
Чтобы установить Java 8:
$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8
Если вы хотите установить и управлять несколькими версиями Java, вы можете использовать jenv
:
Установите и настройте
jenv
:$ brew install jenv $ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(jenv init -)"' >> ~/.bash_profile $ source ~/.bash_profile
Добавьте установленные версии Java в
jenv
:$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home $ jenv add /Library/Java/JavaVirtualMachines/jdk1.11.0_2.jdk/Contents/Home
Чтобы увидеть все установленные версии Java:
$ jenv versions
Эта команда выдаст список установленных версий Java:
* system (установлено через /Users/lyncean/.jenv/version) 1.8 1.8.0.202-ea oracle64-1.8.0.202-ea
Настройте желаемую версию Java для использования:
$ jenv global oracle64-1.6.0.39
Чтобы установить переменную
JAVA_HOME
:$ jenv enable-plugin export
Таким образом, вы сможете легко управлять версиями Java на вашем Mac.
Вы можете установить Java 8 на macOS, выполнив следующие команды:
brew tap adoptopenjdk/openjdk
brew install --cask homebrew/cask-versions/adoptopenjdk8
Обратите внимание: adoptopenjdk8
официально больше не поддерживается. Это может привести к проблемам с работоспособностью (или полной неработоспособности) в последних версиях macOS. В данный момент данный метод работает, но настоятельно не рекомендуется использовать это решение для установки Java 8.
Если у вас на компьютере установлено несколько версий Java и вы хотите динамически выбирать, какую из них использовать во время выполнения, вы можете сделать это, изменив содержимое файла /etc/profile
. Вот как это можно сделать на примере двух версий:
- В списке установленных версий можно увидеть следующее:
ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x 3 root wheel 96B Nov 16 2014 jdk1.7.0_71.jdk/
drwxr-xr-x 3 root wheel 96B Mar 1 2015 jdk1.8.0_31.jdk/
- Для изменения текущей версии Java откройте файл
/etc/profile
и добавьте (или измените) следующие строки в конце файла:
export JAVA_HOME=ВАШ_ПУТЬ_К_JAVA/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
- В вашем случае это будет выглядеть следующим образом:
Для Java 7:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
Для Java 8:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
- После внесения изменений сохраните файл, а затем выполните команду:
source /etc/profile
Это должно решить вашу задачу. Вот как будут выглядеть результаты, когда вы используете каждую из версий:
Для Java 7:
java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Для Java 8:
java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Процесс будет аналогичным, если ваша папка с Java расположена в других каталогах.
Как определить, содержится ли определенное значение в массиве в Java?
Сортировка ArrayList пользовательских объектов по свойству
Как установить pip на macOS или OS X?
Оператор двойного двоеточия (::) в Java 8
Java 8: Преобразование List<V> в Map<K, V>