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

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

После прочтения я узнал, что WatchService является частью classа 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.

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

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

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

  1. Я загрузил последнюю версию JDK OpenJDK 1.7 (32/64 бит) из отделения 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> Предпочтения> Java> Установленные JRE вы добавляете новую, типа MacOS X VM, и устанавливаете дом как /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home и имя Java SE 7 (OpenJDK)
  4. Нажмите Готово
  5. Установите добавленную JRE по умолчанию

это должно быть так 🙂

Java 9, 10, 11

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

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

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

  • Выпуски Oracle JDK и JRE с дополнительной платной поддержкой.
  • Azul Systems выпускает:
    • Zulu бесплатной JVM с дополнительной платной поддержкой.
    • Zing коммерческих JVMs со специальными функциями, такими как альтернативный сборщик мусора.
  • Исходный код 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 в этой папке на корневом уровне вашего диска (не в вашей домашней папке):

/ Library / 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) по состоянию на 2012-04-26. Больше нет необходимости в трюках, обсуждаемых на этой странице.

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

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

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

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

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

 /Library/Java/JavaVirtualMachines 

Поздравляем команды Apple и Oracle за их достижение. Этот geek получает острые ощущения, увидев 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.

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

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

 brew cask install caskroom/versions/java7 

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

То, что я сделал, чтобы заставить это работать на моей машине, – это:

  • следуя инструкциям по порту JDK7 для Mac OS X для общей установки
  • в IntelliJ открыть / создать новый проект, чтобы вы могли добавить новый SDK (Файл> Структура проекта)
  • выберите «Настройки платформы»> «SDK», нажмите «+» (плюс), чтобы добавить новый SDK
  • выберите JSDK и перейдите в / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home. Не ошибитесь с / Users / YOUR_USERNAME / Library / Java / . Это свяжет 4 JAR из каталога «lib» (dt.jar, jconsole.jar, sa-jdi.jar и tools.jar)
  • вам также потребуется добавить JAR из / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Содержание / Главная / jre / lib (charsets.jar, jce.jar, JObjC.jar, jsse.jar, agent-agent .jar, resources.jar и rt.jar)

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

 brew tap caskroom/cask 

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

 brew tap caskroom/versions brew cask install java7 

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

EDIT Январь 2018 года (Как указал Анкур ):

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

 brew cask install caskroom/versions/zulu7 

Возможно, вам все равно нужно добавить JDK в Eclipse (STS). Просто потому, что JDK находится в системе, это не значит, что Eclipse знает, где его найти.

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

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

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

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

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

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

Как насчет Netbeans, вот статья, как настроить его с помощью NB7:

http://netbeanside61.blogspot.com/2011/06/downloading-openjdk7-binary-for-mac-os.html

Возможно, подобные шаги для Eclipse.

По состоянию на 27 апреля есть официальный выпуск Oracle Java SE 7u4. Загрузите образ диска и запустите программу установки, а затем просмотрите программу чтения Mac .

Инструкции 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. Пока ничего хорошего. Спасибо, Питер.

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

По состоянию на декабрь 2017 года ранее опубликованные ссылки не работают, но JDK 7 можно загрузить из Oracle Archives (требуется логин):

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html

Я обновил до 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 / Содержание / Главная» отсутствовали в «/ System / Library / Java». Итак, я скопировал «JavaVirtualMachines / 1.6.0.jdk / Contents / Home» с «/ Library / Java /» на «/ System / Library / Java /» и cha ching! Я снова был в бизнесе.

  • Сделать команды OS X Terminal I type BOLD
  • Как разбить .zip-файл на несколько сегментов?
  • Как я могу запускать скрипт всякий раз, когда подключаю внешний монитор?
  • OSX 10.11 включить ssh diffie-hellman-group1-sha1
  • Установите приложения Nokia .sis из Mac OS X
  • Файлы в SMB-Share заблокированы, и некоторые приложения не могут их трогать
  • Атака VNC на OS X 10.10 - нужно ли мне беспокоиться / отвечать?
  • Терминальные звуковые сигналы (выход) и Growl
  • Почему функция apt-get не работает в терминале на mac osx 10.9?
  • Установка пароля пользователя root root на OS X
  • Полноэкранный Emacs в OSX
  • Давайте будем гением компьютера.