12

Как установить Java 8 на Mac

23

Описание проблемы:

Здравствуйте!

Я столкнулся с проблемой при попытке использовать последнюю версию 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 ответ(ов)

8

Обратите внимание: 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
1

Я только что сделал это на своем MacBook Pro и пришлось использовать следующие команды:

$ brew tap homebrew/cask-versions
$ brew cask install java8

Таким образом, я установил Java 8. Не забудьте, что для работы с brew cask может потребоваться установка Homebrew версии 2.6.0 и выше.

0

Предположение: у вас Mac и уже установлен Homebrew.

  1. Установите cask (на Homebrew 0.9.5 или выше cask уже включен, так что этот шаг можно пропустить):

    $ brew tap caskroom/cask
    $ brew tap caskroom/versions
    
  2. Чтобы установить последнюю версию Java:

    $ brew cask install java
    
  3. Чтобы установить Java 8:

    $ brew cask install adoptopenjdk/openjdk/adoptopenjdk8
    

Если вы хотите установить и управлять несколькими версиями Java, вы можете использовать jenv:

  1. Установите и настройте jenv:

    $ brew install jenv
    $ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
    $ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
    $ source ~/.bash_profile
    
  2. Добавьте установленные версии 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
    
  3. Чтобы увидеть все установленные версии Java:

    $ jenv versions
    

    Эта команда выдаст список установленных версий Java:

    * system (установлено через /Users/lyncean/.jenv/version)
    1.8
    1.8.0.202-ea
    oracle64-1.8.0.202-ea
    
  4. Настройте желаемую версию Java для использования:

    $ jenv global oracle64-1.6.0.39
    
  5. Чтобы установить переменную JAVA_HOME:

    $ jenv enable-plugin export
    

Таким образом, вы сможете легко управлять версиями Java на вашем Mac.

0

Вы можете установить Java 8 на macOS, выполнив следующие команды:

brew tap adoptopenjdk/openjdk
brew install --cask homebrew/cask-versions/adoptopenjdk8

Обратите внимание: adoptopenjdk8 официально больше не поддерживается. Это может привести к проблемам с работоспособностью (или полной неработоспособности) в последних версиях macOS. В данный момент данный метод работает, но настоятельно не рекомендуется использовать это решение для установки Java 8.

0

Если у вас на компьютере установлено несколько версий Java и вы хотите динамически выбирать, какую из них использовать во время выполнения, вы можете сделать это, изменив содержимое файла /etc/profile. Вот как это можно сделать на примере двух версий:

  1. В списке установленных версий можно увидеть следующее:
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/
  1. Для изменения текущей версии Java откройте файл /etc/profile и добавьте (или измените) следующие строки в конце файла:
export JAVA_HOME=ВАШ_ПУТЬ_К_JAVA/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
  1. В вашем случае это будет выглядеть следующим образом:

Для 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
  1. После внесения изменений сохраните файл, а затем выполните команду:
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 расположена в других каталогах.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь