Как установить 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

но предыдущие версии на

/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 не помещает его туда, куда он действительно идет? И как я могу обойти эту проблему?

Ответ 1

Не полагайтесь на Oracle для правильной установки Java на вашем Mac.

Используйте Homebrew. это установит последнюю версию JDK:

brew cask install java

Если вы хотите управлять несколькими версиями Java на вашем Mac, подумайте об использовании jenv.

ОБНОВЛЕНИЕ: Теперь, когда Java 8 больше не самая последняя версия, если вы хотите, чтобы Java 8 установила ее следующим образом:

brew tap caskroom/versions
brew cask install java8

Чтобы получить список всех более старых версий java: brew tap caskroom/versions а затем используйте brew search java.

Мы используем brew cask, поскольку в противном случае мы использовали бы установщик Oracle GUI, который, вероятно, не установит Java должным образом на вашем Mac. (Используйте приложение brew cask install APP для установки приложений с графическим интерфейсом; используйте приложение brew install APP.) Java не является приложением с графическим интерфейсом; Это не должно требовать "бочки", но по крайней мере Oracle является последовательным.

Ответ 2

Примечание. Oracle Java 8/9/10 больше не доступна для публичного скачивания (изменение лицензии).

Сначала установите и обновите brew из терминала:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew tap homebrew/cask-versions

brew update

НОВОЕ на июнь 2019 года

Чтобы установить JDK из AdoptOpenJDK:

brew tap adoptopenjdk/openjdk

brew cask install adoptopenjdk8
brew cask install adoptopenjdk9
brew cask install adoptopenjdk10
brew cask install adoptopenjdk11

OLD

Java 8:

brew cask install java8

Java Latest:

brew cask install java

Ответ 3

Я просто сделал это на своем MBP и должен был использовать

$ brew tap caskroom/versions
$ brew cask install java8

чтобы установить java8.

Ответ 4

Java8 больше не доступна на homebrew, brew install java8 не будет работать.

Вместо этого используйте:

brew cask install adoptopenjdk/openjdk/adoptopenjdk8

Смотрите этот коммит для технических деталей.

Пожалуйста, обратите внимание, что вы можете увидеть проблемы вокруг Cask adoptopenjdk8 exists in multiple taps. Это известная проблема, над которой в настоящее время ведется работа, которую вы можете увидеть здесь:

https://github.com/AdoptOpenJDK/homebrew-openjdk/issues/106

Для тех, кто не хочет бегать по деталям, вот резюме:

# To install JDK8
brew cask install adoptopenjdk/openjdk/adoptopenjdk8

# To be able to safely run 'brew cleanup'
brew untap adoptopenjdk/openjdk
brew untap caskroom/versions
brew cleanup

Ответ 5

Параметр, который мне очень нравится при запуске приложений на моем локальном компьютере, заключается в использовании Docker. Вы можете просто запустить свое приложение в официальном контейнере JDK, что означает, что вам не нужно беспокоиться о том, чтобы все настроено на вашем локальном компьютере (или беспокоиться о запуске нескольких разных версий JDK для разных приложений и т.д.).

Несмотря на то, что это может не помочь вам с вашими текущими проблемами установки, это решение, которое означает, что вы можете направить минное поле на проблемы, связанные с попыткой правильно запустить Java на вашей машине dev!

Преимущества:

  • Не нужно настраивать какую-либо версию Java на вашем локальном компьютере (вы просто запустите Java в контейнере, который вы вытащите из Docker Hub)
  • Очень легко переключиться на разные версии Java, просто изменив тег на контейнере.
  • Зависимости проекта устанавливаются внутри контейнера, поэтому, если вы испортите свой конфиг, вы можете просто уничтожить контейнер и начать заново.

Очень простой пример:

Создайте Dockerfile:

FROM java:8
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
  • Здесь мы указываем, что контейнер Java, работающий под управлением версии 8 SDK (java:8 - для использования Java 7, можно просто указать: java:7)
  • Мы сопоставляем локальный каталог с каталогом: /usr/src/myapp внутри контейнера

Создайте файл docker-compose.yml:

version: "2"

services:
  java:
    build: .
    volumes:
      - .:/usr/src/myapp

Теперь предположим, что у нас есть этот файл Java:

HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {        
        System.out.println("Hello, World");
    }
}

Итак, у нас есть следующая файловая структура:

.
|_ Dockerfile
|_ docker-compose.yml
|_ HelloWorld.java

Вы можете делать различные Java-вещи, например:

компиляции:

docker-compose run --rm java javac HelloWorld.java 
  • Вы должны заметить, что HelloWorld.class отображается в вашем текущем каталоге (это связано с тем, что мы сопоставили текущий каталог с местоположением внутри контейнера, где наш код существует

Выполнить:

docker-compose run --rm java java HelloWorld 
  • Примечание: при первом запуске это приведет к извлечению изображения и т.д. Это займет некоторое время - это происходит только в первый раз
  • docker-compose run - запускает команду из контейнера
  • -rm сообщает docker удалить контейнер после завершения команды
  • java - это имя службы/контейнера (из нашего файла файла для докеры), против которого будет выполняться эта команда.
  • остальная часть строки - это команда для запуска внутри контейнера.

Это довольно классный способ работать с различными версиями Java для разных приложений, не создавая полного беспорядка локальной настройки:).

Вот несколько более сложный пример, в котором Maven и простое приложение Spring

Отказ от ответственности:

Ответ 6

У меня такая же проблема для решения, потому что мне нужно установить JDK8 для запуска Android SDK Manager (потому что кажется, что не работает с JDK9). Однако я расскажу вам, как я решаю все проблемы на Mac (Sierra).

Сначала вам понадобится brew с боксом и jenv.

  • Здесь вы можете найти полезное руководство, Руководство по установке Homebrew Cask. Не забудьте нажать "контейнер/версии", работающий в терминале: brew tap caskroom/versions
  • После этого установите jenv с помощью: brew install jenv
  • Установите любую версию, которую хотите с помощью cask brew cask install java8 (или java7 или java, если вы хотите установить последнюю версию, jdk9)
  • Последний шаг - настроить версию для запуска (и позволить jenv управлять вашим JAVA_HOME) jenv versions, чтобы просмотреть все версии, установленные на вашем компьютере, и затем активировать тот, который вы хотите, с помощью jenv global [JDK_NAME_OF_LIST]

Здесь вы можете найти другую полезную информацию об этом Github Gist brew -java-and-jenv.md в этом блоге Установить несколько JDK на Mac и на Jenv Website

Ответ 7

brew cask install caskroom/versions/java8

Ответ 8

Предположение: Mac машина и вы уже установили доморощенный.

Установите бочку:

$ brew tap caskroom/cask
$ brew tap caskroom/versions

Чтобы установить последнюю версию Java:

$ brew cask install java

Чтобы установить Java 8:

$ brew cask install java8

Если вы хотите установить/управлять несколькими версиями, вы можете использовать '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 (set by /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

Ответ 9

Если у вас есть несколько версий Java на вашем компьютере, и вы хотите выбрать его динамически во время выполнения, т.е. в моем случае у меня есть две версии:

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/

Вы можете изменить их, изменив содержимое /etc/profile. Просто добавьте (или измените) следующие две строки в конце файла:

export JAVA_HOME=YOUR_JAVA_PATH/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 файл 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 находится в разных местах.

Ответ 10

У меня есть приложения, которые используют как Java 7, так и 8 и должны постоянно и все время идти туда и обратно.

Я использую этот script, написанный Johan:

http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/

Теперь вы можете установить его при запуске или вызвать script.
Установите JDK для Mac.

Java 7

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Java 8

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Ответ 11

Используйте установщик, Люк

У вас есть несколько источников, чтобы получить простое в использовании приложение для установки Java на ваш Mac. Другие ответы, предполагающие Brew или другие подходы, кажутся мне немного экстремальными. Просто скачайте установщик Mac из надежного источника и запустите его.

Вот блок-схема для поиска источника Java 11, некоторые из которых также предлагают Java 8.

lowchart for choosing a source for Java 11.

Папка JavaVirtualMachines теперь правильная

Почему установщик Oracle не помещает его туда, куда он действительно идет? И как я могу обойти эту проблему?

Не проблема.

Папка /Library/Java/JavaVirtualMachines/ является новым домом для JVM в macOS.

Чтобы установить JVM, используйте установщик, описанный ниже.

Чтобы удалить, просто используйте Finder, чтобы удалить JVM из этой папки. Вам будет предложено ввести пароль системного администратора для завершения удаления.


Java 9 & 10 & 11

Еще в 2010 году Apple присоединилась к проекту OpenJDK вместе с Oracle, IBM, Red Hat, Azul и другие поставщики Java. Каждый участник вносит исходный код, тестирование и обратную связь в унифицированную кодовую базу OpenJDK.

Apple предоставила большую часть своего специфичного для Mac кода для своей JVM. Теперь Apple больше не выпускает свою собственную JVM для Mac. Теперь у вас есть выбор поставщика JVM со сборками, основанными на базе кода OpenJDK.

Вы найдете исходный код по адресу: http://openjdk.java.net

Новый релиз Cadence

Помните, что в 2017 году Oracle, JCP и OpenJDK приняли новый план "быстрого выпуска" для регулярно планируемых версий Java, которые будут доставляться предсказуемым образом.

Прочтите этот пост в блоге Azul Systems за 2018-07 гг., Чтобы узнать больше подробностей, Устранение путаницы при обновлении Java Саймоном Риттером.

Также прочитайте Java все еще бесплатна.

Вендоры

Довольно исчерпывающий список прошлых и настоящих реализаций JVM см. на этой странице в Википедии.

Вот три активных в настоящее время источника, о которых я знаю.

Oracle JVM

Oracle предоставляет установщики JDK и JRE для нескольких платформ, включая macOS.

За годы, прошедшие с момента приобретения Sun, Oracle объединила лучшие части двух движков JVM, HotSpot и JRocket, и объединила их в проект OpenJDK, используемый как основа для собственных фирменных реализаций Java.

Их новый бизнес-план, начиная с 2018 года, состоит в том, чтобы обеспечить реализацию Java под брендом Oracle за плату в процессе производства и бесплатно для использования в разработке/тестировании/демонстрации. Поддержка предыдущих выпусков требует платной программы поддержки. Они объявили о своем намерении сделать так, чтобы их фирменный выпуск соответствовал функциональным возможностям OpenJDK. Они даже пожертвовали свои коммерческие дополнения, такие как Flight Recorder, для проекта OpenJDK.

Zulu & Зинг от Азула

Azul Systems предоставляет множество продуктов JVM.

  • Их линия Zulu основана непосредственно на OpenJDK и доступна бесплатно с опциональными платными планами поддержки.
  • Их линейка Zing предлагает коммерческие продукты JVM, дополненные альтернативными техническими реализациями, такими как специализированный сборщик мусора.

Обе их линии предлагают инсталляторы для macOS.

В настоящее время я использую Zulu для Java 10.0.1 в macOS High Sierra с IntelliJ 2018.2 и Vaadin 8. Я скачал с этой страницы. Кстати, я не нахожу никаких элементов, связанных с Java, установленных в приложении системных настроек Apple.

AdoptOpenJDK.net

AdoptOpenJDK - это работа сообщества по созданию бинарных файлов исходного кода OpenJDK. Они намерены предлагать обновления со временем, как пожертвовано членами сообщества.

  • Вы можете выбрать HotSpot или OpenJ9.
  • Сборки доступны для MacOS, Linux и Windows.

OpenJ9 от Eclipse

OpenJ9 - это еще одна реализация движка JVM, альтернатива HotSpot.

Спонсируемый в Eclipse Foundation, с технологией и поддержкой, пожертвованной IBM в 2017 году.

Для готовых двоичных файлов они направляют вас в проект AdoptOpenJDK, упомянутый выше.


Как установить

Установщики, предоставляемые Oracle или Azul, очень просты в использовании. Просто запустите приложение установщика на вашем Mac. Появится окно, показывающее ход установки.

По завершении проверьте вашу установку JVM:

  • Посетите папку /Library/Java/JavaVirtualMachines/, чтобы увидеть элемент для новой JVM.
  • Запустите консоль, такую как Terminal.app, и введите java -version, чтобы увидеть марку и номер версии вашей JVM.

После проверки успеха отключите образ .dmg в Finder. Затем удалите загруженный файл .dmg.

Ответ 12

Запустите эти команды на Mac High Sierra

brew update
brew tap caskroom/versions
brew cask install java8

и проверьте с помощью команды

java -version

Ответ 13

Похоже, никто еще не упомянул SDK man (https://sdkman.io/).

SKD man позволяет установить несколько версий Java на Mac и легко переключаться между этими версиями. Более подробная информация доступна на https://sdkman.io/usage.

Например:

$ sdk list java                                                                                                                                                                                                                       
================================================================================
Available Java Versions
================================================================================
   * 12.ea.20-open
     11.0.1-zulu
 > * 11.0.1-open
     10.0.2-zulu
     10.0.2-open
     9.0.7-zulu
     9.0.4-open
     8.0.192-zulu
     8.0.191-oracle
   + 8.0.181-oracle
     7.0.181-zulu
     1.0.0-rc-10-grl
     1.0.0-rc-9-grl
     1.0.0-rc-8-grl


================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

$ sdk install java 8.0.191-oracle

$ sdk use java 8.0.191-oracle

Using java version 8.0.191-oracle in this shell.                                                                                                                                                                                                      

$ java -version                                                                                                                                                                                                                        
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

$ sdk use java 11.0.1-open                                           

Using java version 11.0.1-open in this shell.

$ java -version                                                                                                                                                                                                                        openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
                                                                                                                                                                                                         '''


Ответ 14

Использование brew

brew install Caskroom/cask/java

Ответ 15

Лучший способ - использовать менеджер пакетов Brew, но команду

 brew cask install java8

не удается с ошибкой:

Error: No available formula with the name "java8" 

Так что используйте

brew cask install caskroom/versions/java8

Как я нашел "caskroom/version/java8": используя команду поиска brew:

brew cask search java8

Ответ 16

Если вы используете его НЕ для личного использования, вы можете вместо этого использовать OpenJDK, чтобы избежать любых возможных судебных исков со стороны Oracle.

brew cask install adoptopenjdk8

Ответ 17

Самый простой способ -

1) brew cask install java (No need to install cask separately it comes with brew)

2) java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

P.S - Что такое brew -cask? Homebrew-Cask расширяет Homebrew и решает проблему выполнения дополнительной команды - "Установить, перетащите эту иконку..." после установки приложения с использованием Homebrew.

Ответ 18

Проще всего скачать файл dmg со следующего сайта и установить его двойным щелчком мыши.

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

искать доступные JVM из домашнего каталога

ls -al /Library/Java/JavaVirtualMachines

и обновите.bash_profile с соответствующей версией

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_XXX.jdk./Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

и наконец

source ~/.bash_profile

Ответ 19

Вы можете попробовать это:

$ brew search jdk
$ brew cask install homebrew/cask-versions/adoptopenjdk8
$ /usr/libexec/java_home

 

Ответ 20

Пытаться:

заварить бочку установить Java 8, даст следующий результат

8tracksradioHelperopenjdk8 amitv87-pip corretto8 icons8 vmware-fusion8 x48 zulu8

Далее введите: brew cask install accepttopenjdk8 ---- Java 8 будет установлена в Mac.

Ответ 21

Я бы предложил использовать SDK man, который довольно легко изменить версию (временную и постоянную), а также предоставляет другие SDK. Я пользуюсь человеком из SDK уже больше года.

https://sdkman.io/

Ответ 23

Если вы работаете на Mac, то Homebrew - это способ установить материал.

Кажется, что версия 8 больше не самая последняя, поэтому она недоступна при использовании по умолчанию brew cask install java.

Вместо этого мне удалось сделать следующее: brew install homebrew/cask-versions/ brew install homebrew/cask-versions/adoptopenjdk8

Тест с brew cask list

Ответ 24

Ниже были шаги для меня.

1) Удалите все jdks

В окне терминала скопируйте и вставьте следующую команду:

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane

2) Установите APPLE jdk.

https://support.apple.com/kb/DL1572?locale=en_US

3) Загрузите последнюю версию JDK из Oracle и установите ее, для меня это был JDK 1.82

http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

Это все будет работать как шарм.

Ответ 25

У меня также была та же проблема. Но после небольшого хита и испытания я смог решить проблему.

Попробуйте удалить 1.6 sdk sudo rm и перезагрузите свой mac.

Загрузите снова файл .dmg. Скорее всего, программа установки .dmg, которую вы загрузили, может быть повреждена. Установите еще раз.

Запустите следующую команду после установки. Он дает путь для jdk 8. /usr/libexec/java _home -v 1.8

Также вы можете запустить и увидеть папку jdk 8. Файлы могут быть скрыты. ls -al/Library/Java/JavaVirtualMachines/