Почему версия Java, проверенная Oracle, отличается от версии, отображаемой в командной строке?

Вопросов

Почему версии отличаются?

Должны ли мы доверять процедуре проверки Oracle?


В некоторых случаях версия, проверенная Oracle , отличается от версии, показанной в командной строке.

Пример

Скриншот Safari, консоли Java и терминала

Этот пример в деталях

Согласно Oracle в браузере:

  • Java 7 Обновление 9

Согласно консоли Java:

Java Plug-in 10.9.2.05
Using JRE version 1.7.0_09-b05 Java HotSpot(TM) 64-Bit Server VM

Согласно javaкоманде:

sh-3.2$ java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b58)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b02, mixed mode)
По какой причине вы установили ранний доступ к Java 8?
@ ThorbjørnRavnAndersen, спасибо, что спросили. Теперь есть связанный вопрос.

Ответы (1)

Проблемное использование терминологии

Скриншот страницы Oracle «Проверить версию Java»

Снимок другой страницы Oracle с тем же заголовком

Там, где Oracle сначала описывает Java для «вашей операционной системы», а затем «для вашего компьютера», более точно загрузка выполняется только для вещей, которые используют подключаемый модуль Интернета :

  • jre-7u13-macosx-x64.dmgустанавливает то, что требуется для этого подключаемого модуля, но для вещей, которые используют Java без подключаемого модуля, этот установщик от Oracle ничего не делает.

Намекать

В OS X: если вы хотите, чтобы среда выполнения Java (JRE) от Oracle была похожа на JRE на приведенной ниже диаграмме как для (а) вещей, использующих подключаемый модуль Интернета, так и (б) вещей, использующих Java без этого подключаемого модуля, в:

  • при загрузке Java SE игнорируйте JRE ; скачать и установить JDK

  • и — если вам требуется более поздняя версия — в JDK 8 Early Access Releases — Java.net , игнорируйте JRE ; скачать и установить JDK .

Дополнительное объяснение

Дистрибутив Java от Apple — это больше, чем интернет-плагин.

Процедура Oracle, изображенная выше, ведет к не более чем подключаемому модулю. Другие части дистрибутива Apple не затрагиваются установщиком Oracle.

Установка JDK от Oracle поместит папку по следующему пути, переопределяя (но не удаляя) JDK от Apple:

/Library/Java/JavaVirtualMachines

В каждом JDK есть JRE. См. диаграмму ниже.

Oracle действительно документирует это (хотя на его поиск ушло 3 1/2 года). См . страницу Oracle в командной строке OSX.

Среда выполнения Java (JRE), которую вы загружаете с java.com или oracle.com, содержит подключаемый модуль для запуска содержимого Java из вашего браузера. Чтобы использовать инструменты командной строки, вам необходимо загрузить Java Development Kit (JDK). JRE и JDK являются отдельными и могут сосуществовать в вашей системе. В Mac OS X можно установить только одну JRE. В системе может быть установлено сколько угодно JDK.

Мысли

Огромная красная кнопка «Загрузить Java сейчас» выглядит слишком упрощенно. Слишком много пользователей, включая некоторых технических экспертов, в конечном итоге озадачены конечным результатом.

Если браузер Mac обнаруживается сервером Oracle, одна из следующих фраз может ввести в заблуждение:

  • Загрузите Java для своего браузера
  • Скачать интернет-плагин

Критически

Oracle должен предложить некоторые пояснения в своем FAQ по Mac (Информация и системные требования для установки и использования Mac Java 7) . В текущем недатированном издании этой страницы нет объяснения.

Положительно

Некоторые пользователи хотят или требуют, чтобы JRE подключаемого модуля Интернета отличалась от JRE, используемой где-либо еще. Этим пользователям может понравиться эффективное разделение задач Oracle.

Пример:

  • в Safari и других браузерах я использую самую последнюю версию Java 7 Update 13
  • для Wuala.app и других вещей, которые не используют подключаемый модуль Интернета, я использую ранний доступ, предварительную версию для разработчиков Java 8 (Java(TM) SE Runtime Environment build 1.8.0-ea-b75).

YMMV.


Справочные элементы

Справочный центр Java

  • в Терминологии см . Версии .

Документация по платформе Java Standard Edition 7

На приведенной ниже диаграмме с этой страницы сосредоточьтесь на:

  • слева вертикальный пролет JRE
  • оранжевый верхний слой JRE —  Java Web Start и Apple/Java Plug-in

скриншот документации Oracle

Связанный

Как я могу переключаться между двумя версиями Java в Mountain Lion теперь, когда настройки Java исчезли?

Рассматривали возможность написания постов в блоге вместо того, чтобы отвечать на собственные вопросы?
Это нормально — задавать свои вопросы и отвечать на них . Я видел путаницу вокруг версий Java в течение длительного периода времени в Ask Different и подумал, что пришло время задать вопрос.
Я рад, что вы ответили на свой вопрос. Продолжайте хорошую работу!
@GrahamPerrin Я нашел документацию Oracle об этой путанице - я ввел ее прямо перед заголовком «Мысли». Пожалуйста, отредактируйте сообщение, чтобы разместить его в лучшем месте