Как использовать JDK 7 в Mac OSX?

107

Я хотел бы использовать API WatchService, как указано в этой ссылке: http://download.oracle.com/javase/tutorial/essential/io/notification.html

Прочитав вокруг, я обнаружил, что WatchService является частью класса NIO, который запланирован для JDK 7. Итак, он находится в бета-форме. Все хорошо.

http://jdk7.java.net/download.html содержит JDK, который я скачал и извлек. У меня куча папок. Я не знаю, что с ними делать.

Затем я прочитал еще немного и обнаружил, что какая-то хорошая группа людей создала JDK 7 как двоичный файл, чтобы кто-то вроде меня мог легко его установить. Он называется Open JDK: http://code.google.com/p/openjdk-osx-build/

Итак, я скачал файл .dmg и установил его. Затем я открываю «Предпочтения Java» и вижу, что OpenJDK7 доступен.

Итак, теперь я чувствую, что могу начать опробовать WatchService API. Из учебника по первой ссылке автор предоставил файл .java, чтобы сначала его протестировать и убедиться, что он работает. Вот ссылка на файл: http://download.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java

Итак, я загружаю Eclipse (на самом деле я использую STS), создаю новый проект Java и выбираю JaveSE-1.7 в поле «Использовать среду выполнения JRE:». В папку src копирую вставленный файл WatchDir.java.

И я все еще вижу множество волнистых красных линий. Все "import.java.nio. *" Все красные, и я не могу запустить его как приложение Java.

Что мне нужно сделать?

окисабени
источник
Можете ли вы запустить и скомпилировать его на консоли?
dmeister 07
Вы имеете в виду: $ javac WatchDir.java, а затем $ Java WatchDir? Я попробую это. Спасибо! Хотя мне бы хотелось, чтобы он был доступен в Eclipse IDE.
okysabeni 07
1
С сегодняшнего дня выходит официальный релиз Oracle - Java SE 7u4
мммммм
Убедитесь, что вы используете 64-битный Eclipse. Не удалось запустить 32-битный на 1.7 jvm с любыми параметрами.
tuxSlayer
Обновление: срок службы Java 7 подошел к концу . Чтобы перейти к версиям Java с долгосрочной поддержкой (LTS), см .: Как установить Java 8 на Mac и получить Java 11 для macOS? .
Базиль Бурк,

Ответы:

61

Oracle выпустила JDK 7 для OS X .

Мукунд
источник
Я обновлю ответ последней информацией. Пожалуйста, дайте мне знать, если это неправильный ответ. Спасибо.
okysabeni 04
@Yko - смотрите BasilBourque для получения наиболее полной информации (или мой для первого Oracle JDK7 версии 4)
мммммм
12
Обратите внимание, что для того, чтобы заставить приложения использовать Java 1.7 от Oracle в пользу Java 1.6 от Apple, мне пришлось запустить /Library/Java/JavaVirtualMachines/1.7.0.jdkи перетащить «Java SE 7» в начало списка на вкладке «Общие». Это также будет javacуказывать на версию Java 1.7 при запуске терминала.
sschuberth 01
2
Oracle JDK7 не работает над Snow Leopard. В нем говорится, что поддерживается только Lion.
Санхюн Ли
@Sangdol - Да, Java-реализация Oracle работает только на Lion и более поздних версиях. Как отмечалось в моем ответе на этот вопрос.
Basil Bourque
88

Вот как я получил версию 1.7 для работы с Eclipse. Я надеюсь, что это помогает.

  1. Я загрузил последний универсальный (32/64 бит) JDK OpenJDK 1.7 из ветки Mac OS / X с http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
  2. скопировал jdk в / Library / Java / JavaVirtualMachines / рядом с установленным по умолчанию 1.6.0
  3. В Eclipse> Preferences> Java> Installed JREs вы добавляете новую, типа MacOS X VM, и устанавливаете дом как /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home и называете Java SE 7 (OpenJDK)
  4. Нажмите Готово
  5. Установите добавленную JRE по умолчанию

так и должно быть :)

векторизировать
источник
спасибо мой elcipse полностью завис .. так что я попытался использовать sdk 1.7 работал отлично! : =)
cV2
1
Этот проект (openjdk-osx-build) был закрыт и больше не предлагает никаких загрузок.
aroth
шаг 2 может быть просто: запустите скачанный jdk-7u40-macosx-x64.dmg, и он автоматически добавит файл в путь
Михал
При добавлении установленной JRE в Eclipse Eclipse также может «искать» установленные JRE. Вот как я нашел свою существующую установку 1.7 JDK.
jvriesem
Обратите внимание, что установщик oracle jdk 1.7 поместит виртуальную машину в / Library / Java / JavaVirtualMachines / для вас (март 2014 г.)
Крис Торн,
55

Ява 9, 10, 11

Несколько лет назад Apple присоединилась к проекту OpenJDK , передав свой ранее проприетарный код JVM для macOS в качестве бесплатного открытого исходного кода. Apple прекратила распространение своей собственной торговой марки JVM / JDK, полагаясь на выпуски под торговой маркой Oracle, которые включают версию для macOS.

Oracle недавно объявила о своем намерении привести свой выпуск JVM под брендом Oracle в соответствие с функциями проекта OpenJDK с практически той же кодовой базой. Компания даже пожертвовала свои ранее коммерческие инструменты, Flight Recorder & Mission Control , проекту OpenJDK. Это часть перехода к новому плану быстрого «выпуска» для предсказуемо запланированного управления версиями Java и OpenJDK. Примечательно, что периоды бесплатных общедоступных обновлений теперь сокращены. См. Это объявление 2017-09 и этот пост Марка Райнхольда .

В результате всего этого у пользователей MacOS Java есть выбор поставщиков для реализации Java. На данный момент как минимум три источника основаны на OpenJDK для macOS:

  • Релизы Oracle по JDK и JRE, с дополнительной платной поддержкой.
  • Выпуск Azul Systems :
    • Линия бесплатных виртуальных машин Java Zulu с дополнительной платной поддержкой.
    • Линия Zing коммерческих JVM со специальными функциями, такими как альтернативный сборщик мусора.
  • Исходный код OpenJDK , самостоятельная компиляция и установка (возможно, не практично для большинства из нас).

Тем временем IBM пожертвовала код для JVM фонду Eclipse Foundation, который теперь размещается в проекте OpenJ9 . Интересно, могут ли они поддерживать выпуск macOS, хотя пока рано говорить об этом.

Лично я в настоящее время успешно использую Zulu версии Java 10.0.1 от Azul на macOS High Sierra с IntelliJ 2018.2 для создания веб-приложений с поддержкой Java с помощью Vaadin .

Установка / Удаление

И Oracle, и Azul предоставляют чрезвычайно простые в использовании установщики для установки JVM / JDK на ваш Mac. Проверьте установку, используя Terminal.app (или аналогичный), чтобы ввести и запустить:

java -version

Вы найдете установки Java в этой папке на корневом уровне вашего диска (а не в вашей домашней папке):

/ Библиотека / Java / JavaVirtualMachines

Каждая версия от каждого поставщика находится там в помеченной вложенной папке. Вы можете удалить любую установку, просто удалив вложенную папку для этой версии и указав системный пароль при появлении запроса.

Java 8

Вы можете загрузить Java Development Kit (JDK) для Java 8 для поддерживаемых версий Mac OS X:

  • Горный лев (10.8.3+)
  • Маверикс (10.9)
  • Йосемити (10.10)
  • Эль-Капитан (10.11)

Каждую версию JVM, которую вы устанавливаете, можно найти здесь:

/Library/Java/JavaVirtualMachines

Дополнительные инструкции и ответы на часто задаваемые вопросы см. В этом руководстве Oracle .

Java 7

Для каждого выпуска Java 7, начиная с обновления 4, была готова версия для Mac вместе с другими платформами. Работает на компьютерах Mac с 64-битным оборудованием на Lion (10.7.3+), Mountain Lion (10.8.3+) и Mavericks (10.9.x).

Oracle объявила об официальном выпуске JDK для Java SE 7 Update 4 в Mac OS X (Lion) 26 апреля 2012 года. Больше нет необходимости в хитростях, обсуждаемых на этой странице.

Установка проста в соответствии с этими инструкциями :

  1. Загрузите с обычного места на сайте Oracle.
  2. Установите DMG.
  3. Запустите установщик.

Этот выпуск имеет несколько ограничений, в первую очередь отсутствие поддержки Java Web Start и Java Plugin для веб-браузеров. Ожидается, что эта поддержка будет позже в этом году.

После установки прочтите файл ReadMe JDK для Mac. Самое главное, если вы хотите, чтобы Java 7 использовалась по умолчанию, перетащите ее в верхнюю часть списка в приложении Java Preferences, которое находится в папке Utilities.

Mac OS X легко поддерживает несколько JVM одновременно. Каждый теперь находится здесь:

/Library/Java/JavaVirtualMachines

Поздравляем команды Apple и Oracle с их достижением. Этот компьютерный фанат с восторгом видит Mac OS X в списке « Сертифицированная конфигурация системы ».

Совет: чтобы запустить Eclipse на Mac с установленной только Java 7, откройте файл псевдонима с именем eclipse, а не файл с именем Eclipse.app .

Java 6

Apple продолжает поставлять последнюю версию Java 6 для всех версий Mac OS X вплоть до Mountain Lion.

Если вы делаете что-то, для чего требуется Java, например введите "java -version" в Terminal.app, появится диалоговое окно с предложением установить Java для вас. Если вы согласитесь, установка произойдет автоматически, как и другие «Обновления программного обеспечения» от Apple.

В этом месте вы найдете установленную Java, отличную от Java 7 и 8:

/System/Library/Java/JavaVirtualMachines

Срок службы Java 6 с Oracle истек в 2013-02 (если у вас нет соглашения о коммерческой поддержке с Oracle). Итак, вам следует перейти на Java 7 или 8.

Тестирование новой версии

В Terminal.app введите, java -versionчтобы проверить, какая версия является текущей по умолчанию.

Удаление старых версий

После установки новой версии вы можете посетить описанную выше папку, чтобы удалить старые версии. Переместите папку в корзину и укажите системный пароль для завершения перемещения.


Кстати, Apple предоставляет список рассылки по техническим вопросам разработчиков, связанным с Java в OS X.

Василий Бурк
источник
Спасибо, у меня это сработало. Это тоже нужно изменить в настройках.
@Tony: Да, изменение ваших предпочтений упомянуто в 4-м абзаце.
Basil Bourque,
Не работает. Я запускаю программу установки, и она сообщает «Успех», но на самом деле ничего не устанавливается. /System/Library/Java/JavaVirtualMachinesсодержит только Java 6 JDK.
Aroth
4
@aroth - (а) Загляните /Library/Java/JavaVirtualMachines(не /System). (b) Читали ли вы документацию по установке Oracle ReadMe, и установили, Preferencesкак описано в моем ответе выше?
Basil Bourque,
1
В Java 7 r21 я вижу /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/. Панель управления Java теперь доступна через Системные настройки (OSX 10.8.3)
Sofi Software LLC
17

Простой способ установить Java 7 на Mac - использовать Homebrew благодаря подключаемому модулю Homebrew Cask (который теперь устанавливается по умолчанию).

Выполните эту команду, чтобы установить Java 7:

brew cask install caskroom/versions/java7
Андрей
источник
«Ошибка: нет доступной бочки для caskroom / versions / java7»
jrochkind
@jrochkind Может быть, ваш caskroom/versionsустарел? Это определенно здесь: github.com/caskroom/homebrew-versions/blob/master/Casks/…
Эндрю
@jrochkind Попробуйте запустить brew tap caskroom/versionsперед запуском команды установки
Эндрю
@jrochkind Если это не сработает, обратитесь к документации по бочке или сообщите о проблеме: github.com/caskroom/homebrew-cask
Эндрю
13

Получить бочку

brew tap caskroom/cask

Установите java7:

brew tap caskroom/versions
brew cask install java7

(Мне было трудно найти ссылку для загрузки java7 на веб-сайте Oracle, поскольку они просто «рекомендуют» java8)

ИЗМЕНИТЬ Январь 2018 г. (как указал Анкур ):

Используйте бочку zulu7 . Zulu - это сертифицированная сборка OpenJDK, созданная Azul Systems, которая должна существовать долгое время (они даже предлагают сборки JDK6 до сих пор).

brew cask install caskroom/versions/zulu7
abe312
источник
Принятый ответ на этот вопрос устарел. Кажется, это лучший способ установить Java 7 в наши дни.
Тим Дин
эта бочка была удалена (см .: github.com/caskroom/homebrew-versions/pull/3914 ). Предлагаемая альтернатива - использовать zulu7.
Ankur
9

Я знаю, что некоторые могут захотеть ударить меня за повторное открытие старого сообщения, но если вы чувствуете это, сделайте это, я просто надеюсь, что это может помочь кому-то еще, пытающемуся установить JDK 7 в Mac OS (с использованием IntelliJ).

Что я сделал, чтобы это работало на моей машине, так это:

  • следовал инструкциям по Oracle JDK7 Mac OS X Port для общей установки
  • в IntelliJ откройте / создайте новый проект, чтобы вы могли добавить новый SDK (Файл> Структура проекта)
  • выберите Параметры платформы> SDK, нажмите "+" (плюс), чтобы добавить новый SDK.
  • выберите JSDK и перейдите в / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home. Не ошибитесь с / Users / ИМЯ_ПОЛЬЗОВАТЕЛЯ / Библиотека / Java / . Это свяжет 4 JAR из каталога "lib" (dt.jar, jconsole.jar, sa-jdi.jar и tools.jar)
  • вам также нужно будет добавить JAR из / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib (charsets.jar, jce.jar, JObjC.jar, jsse.jar, management-agent .jar, resources.jar и rt.jar)
peter_budo
источник
6

Возможно, вам все еще нужно добавить JDK в Eclipse (STS). Тот факт, что JDK находится в системе, не означает, что Eclipse знает, где его найти.

Перейдите в Настройки> Java> Установленные JRE.

Если для 1.7 JDK нет записи, добавьте ее. Вам нужно будет указать Eclipse, где вы установили свой 1.7 JDK.

Если Eclipse не может найти JRE, совместимую с 1.7, я предполагаю, что он просто использует JRE по умолчанию, и это, вероятно, все еще указывает на Java 1.6, что вызовет ваши красные волнистые линии.

Джон Куарфот
источник
Хороший звонок! Но мне нужно немного дополнительных указаний. Я захожу в Установленные JRE -> Добавить и указываю на ... / jdk1.7.0 / jre, и он обнаруживает кучу файлов JAR. Нажимаю "Готово". К счастью, пытается построить, но теперь он говорит ... / jdk1.7.0 / jre / bin / java: невозможно выполнить двоичный файл. Что это значит?
okysabeni 07
Я не совсем уверен. Вы можете попробовать указать eclipse на базовый каталог jdk вместо каталога jre. Я думаю, что это то, как я обычно делал это в Windows, хотя я никогда не отключал JDK по умолчанию на своем Mac. Если это не сработает, вы можете попробовать установить другой дистрибутив JDK 7 - на сайте openjdk-osx-build было несколько разных, может быть, вы взяли тот, который несовместим с вашей системой?
Jon Quarfoth 07
Я пробовал это. Это дает мне ошибку «Цель не является корнем JDK. Системная библиотека не найдена»
okysabeni
6

после установки 1.7jdk от oracle я изменил свои сценарии bash, добавив:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home

а потом запуск java -versionпоказал нужную версию.

Дастин Гетц
источник
1

Инструкции peter_budo работали отлично. Мне пришлось добавить банки в / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib / в мои библиотеки проекта IntelliJ. Теперь это работает как шарм. Обратите внимание, что мне не требовалось, чтобы моя IDE работала под версией 1.7; скорее, мне нужно было только уметь компилировать и запускать версию 1.7. Скорее всего, я продолжу использовать JRE от Apple для запуска IDE, поскольку она, вероятно, более стабильна в отношении графических процедур (Swing, AWT). Как и OP, я очень хотел протестировать новый API NIO2. Пока все выглядит хорошо. Спасибо, Питер.

user1092781
источник
1

Что сработало для меня в Lion, так это установка JDK7_u17 из Oracle, затем редактирование ~ / .bash_profile, чтобы включить: export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.7.0_13.jdk / Contents / Home

user1015892
источник
0

Я обновился до Yosemite, и Android Studio не очищала мои проекты и не запускала их на виртуальном или реальном устройстве из-за следующей ошибки:

Failed to complete Gradle execution.Cause:Supplied javaHome is not a valid folder. You supplied: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

После некоторых исследований и устранения неполадок я обнаружил, что файла JDK, на который указывалось в «/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home», не было; весь «JavaVirtualMachines / 1.6.0.jdk / Contents / Home» отсутствовал в «/ System / Library / Java». Итак, я скопировал «JavaVirtualMachines / 1.6.0.jdk / Contents / Home» из «/ Library / Java /» в «/ System / Library / Java /» и чиню! Я вернулся в бизнес.

угли
источник
0

Теперь используйте команду

Обновление 2020: 04

Чтобы установить Java7 с запуском homebrew:

brew tap homebrew/cask-versions
brew cask install java7

Надеюсь на эту помощь.

Superup
источник