it-swarm.com.ru

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

718
user3763100

Не полагайтесь на то, что Oracle правильно установит Java на ваш Mac.

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

brew cask install Java

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

UPDATE: теперь 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. (Используйте APP brew cask install для установки приложений с графическим интерфейсом; используйте APP brew install .) Java нет приложение с графическим интерфейсом; Это должно не требовать "бочки", но, по крайней мере, Oracle является последовательным.

1570
l3x

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

НОВОЕ на июнь 2019 г.

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

brew tap adoptopenjdk/openjdk

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

СТАРЫЙ

Для Эль-Капитан, Сьерра и Высокая Сьерра

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

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

brew tap caskroom/versions

brew update

Java 8:

brew cask install Java8

Java последние:

brew cask install Java
413
kavehmb

Я только что сделал это на моем MBP, и пришлось использовать

$ brew tap caskroom/versions
$ brew cask install Java8

чтобы получить Java8 для установки.

119
Jain Waldrip

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
59
Dave Kerr

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

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

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

  1. Нет необходимости устанавливать какую-либо версию Java на локальном компьютере (вы просто запустите Java в контейнере, который вы извлекаете из Docker Hub)
  2. Очень легко переключаться на разные версии Java, просто меняя тег на контейнере.
  3. Зависимости проекта устанавливаются внутри контейнера - поэтому, если вы испортили свою конфигурацию, вы можете просто сбросить ядро ​​с контейнера и начать заново.

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

Создайте 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 - это имя службы/контейнера (из нашего файла docker-compose), для которой будет выполняться эта команда
  • остальная часть строки - команда для запуска внутри контейнера.

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

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

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

57
toast38coza

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

Во-первых, вам нужно заварить с бочкой и jenv .

  1. Вы можете найти полезное руководство здесь, Руководство по установке Homebrew Cask . Не забудьте нажать "caskroom/версии", запущенные в терминале: brew tap caskroom/versions
  2. После этого установите jenv с помощью: brew install jenv
  3. Установите любую нужную версию с помощью cask brew cask install Java8 (или Java7 или Java, если вы хотите установить последнюю версию, jdk9)
  4. Последний шаг - настроить, какую версию запустить (и позволить jenv управлять вашим Java_HOME) jenv versions, чтобы вывести список всех версий, установленных на вашем компьютере, а затем активировать ту, которую вы хотите, с помощью jenv global [JDK_NAME_OF_LIST]

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

23
Benedetto Abbenanti
brew cask install caskroom/versions/Java8
21
Arun

Предположение: 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
15
Lyncean Patel

Если у вас есть несколько 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, и он должен работать. Вот результаты, когда я использую первый и второй вариант соответственно:

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 находится в разных местах.

14
nxhoaf

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

Я использую этот сценарий, написанный Йоханом:

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

Теперь вы можете установить его при запуске или вызвать скрипт позже.
Установите 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

12
Nathan Dunn

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

brew update
brew tap caskroom/versions
brew cask install Java8

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

Java -version
12
TLbiz

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

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

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

flowchart for choosing a source for Java 11.

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

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

Не проблема.

Папка /Library/Java/JavaVirtualMachines/ является новым домом для JVM s на 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 & Zing от Azul

Azul Systems предоставляет различные продукты JVM.

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

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

В настоящее время я использую Zulu для Java 10.0.1 на macOS High Sierra с IntelliJ 2018.2 и Ваадин 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
Basil Bourque

Похоже, никто еще не упомянул 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)
                                                                                                                                                                                                         ```


7
stderr

Лучший способ - использовать менеджер пакетов 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
7
Navjot Bhardwaj

Используя варево

brew install Caskroom/cask/Java
7
Santhosh

Проще всего скачать файл 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
3
vimal krishna

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

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)

П.С. - Что такое бочка? Homebrew-Cask расширяет Homebrew и решает проблему выполнения дополнительной команды - "Чтобы установить, перетащите этот значок ..." после установки приложения с помощью Homebrew.

3
sapy

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

brew cask install adoptopenjdk8
2
Edmund Lee

Пытаться :

brew cask install Java 8 , даст следующий результат

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

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

0
arg

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

https://sdkman.io/

0
saif ali