Подтвердить что ты не робот

Корреляция между версиями Java EE/J2EE и J2SE/JDK

Я был уверен, что найду дублирующий вопрос или удовлетворительный ответ, но я этого не сделал.

То, что я ищу, - это ответ на эти вопросы:

  • Существует ли официальная корреляция между версиями Java EE/J2EE и J2SE/JDK?
  • Если да, то где это написано?
  • Если ответ отрицательный, то почему? и есть ли неофициальная таблица версий (например, JDK 1.4 хорошо сочетается с J2EE 1.3, JDK 1.5 хорошо сочетается с J2EE 1.4, JDK 1.6 с Java EE 5 и т.д.).

Я могу придумать пару причин для расцепления, но не могу найти хороший исходный источник

Похожие вопросы:

Java SE против Java EE, колледжа и карьеры

Что такое Java EE?

4b9b3361

Ответ 1

Существует ли официальная корреляция между версиями Java EE/J2EE и J2SE/JDK?

Sun может попытаться сохранить какую-то "корреляцию", чтобы не путать пользователей и маркетинговую цель, но AFAIK, нет, официальной корреляции нет (и поддержание псевдосинхронизации может становится более сложным в будущем, поскольку JDK развивается быстрее, чем спецификация Java EE).

ОБНОВЛЕНИЕ: Я ошибался, на самом деле существует корреляция (см. ниже). Но я все еще думаю, что это может стать проблемой: Java 7 запланирована на конец 2010 года, сможет ли группа экспертов успешно запустить Java EE 7 до Java 8 и Java 7 EOL?

Если да, то где это написано?

Указание JSR 151: спецификация JavaTM 2 Platform, Enterprise Edition 1.4 (J2EE 1.4):

  • J2EE 1.4 является Enterprise Edition версии 1.4 платформы Java и, следовательно, будет построен на J2SE 1.4.

Цитата JSR 244: платформа Java (TM), Enterprise Edition 5 (Java EE 5):

  • Java EE 5 является Enterprise Edition версии 5 платформы Java и, следовательно, будет построен на J2SE 5.0.

Цитирование JSR 316: спецификация JavaTM Platform, Enterprise Edition 6 (Java EE 6):

  • Java EE 6 является Enterprise Edition версии 6 платформы Java и, следовательно, будет построен на Java SE 6.

Серьезно, почему мы должны пойти на сайт JCP, чтобы найти это (возможно, я должен был там начать)?

Если ответ отрицательный, то почему?

Java Enterprise Edition - это спецификация, а не реализация. Он может полагаться на определенные функции (например, Java EE 5 и Java 5 generics), но версия JDK на самом деле зависит от реализации используемого вами контейнера. См. Пример Websphere ниже. (Это по-прежнему применяется даже после большого UPDATE выше.)

и есть неофициальная таблица версий (например, JDK 1.4 хорошо сочетается с J2EE 1.3, JDK 1.5 хорошо сочетается с J2EE 1.4, JDK 1.6 с Java EE 5 и т.д.)

Как я уже сказал выше, "хорошо" не имеет смысла, так как это зависит от используемого вами контейнера, и контейнеры могут иметь разные требования к совместимости (например, сервер IBM WebSphere J2EE 1.4 может не работать с JDK 5). Поэтому я предпочитаю говорить с точки зрения требований.

J2EE 1.4 SDK поставляется вместе с JDK 5, но... J2EE 1.4 требует JDK 1.4 или новее. Java EE 5 требует JDK 5 или более поздней версии. Java EE 6 требует JDK 6 или более поздней версии (JDK 5 находится на EOL в течение 2 + месяцев).

Ответ 2

Java EE - это набор спецификаций и эталонная реализация для этих спецификаций. Возможно, данная версия зависит от языковых функций, присутствующих в какой-либо версии JDK, а может и нет.

Вы можете думать о Java EE так же, как вы думаете о какой-либо сторонней структуре или библиотеке для Java. Нет никаких оснований для того, чтобы номера версий Java EE и JDK имели что-то общее.

Ответ 3

Как правило, выпуски Java Enterprise Edition выходят после JDK для тех же версий.

В принципе, для последних нескольких выпусков у вас были такие пакеты загрузки:
JDK 5 с J2EE 4.
JDK 5 с Java EE 5.
JDK 6 с Java EE 5.
JDK 6 с Java EE 6 (в настоящее время доступный только на странице Java EE, на странице Java SE по-прежнему есть JDK 6 с Java EE 5)

Обратите внимание, что эти загружаемые пакеты фактически включают в себя Sun версию Java EE (Glassfish в наши дни), которая отличается от версии Apache Java EE (Tomcat/Geronimo) или версии Java Java EE (Websphere).

Если вы решите не использовать Glassfish, вы можете загрузить только JDK6 и один из других пакетов Java EE. На данный момент Glassfish является единственным продуктом Java EE 6, поскольку Java EE 6 только что вышла и эталонная реализация.

Ответ 4

Различия между Java EE и Java SE Технология Java - это язык программирования и платформа. Язык программирования Java - это высокоуровневый объектно-ориентированный язык с особым синтаксисом и стилем. Платформа Java - это особая среда, в которой работают приложения языка программирования Java.

Существует несколько платформ Java. Многие разработчики, даже давние разработчики языка Java, не понимают, как разные платформы связаны друг с другом.

Платформы языка программирования Java Существуют четыре платформы языка программирования Java:

Платформа Java, стандартная версия (Java SE)

Платформа Java, Enterprise Edition (Java EE)

Платформа Java, Micro Edition (Java ME)

JavaFX

Все платформы Java состоят из виртуальной машины Java (VM) и интерфейса прикладного программирования (API). Виртуальная машина Java - это программа для конкретной аппаратной и программной платформы, которая запускает приложения для Java-технологий. API представляет собой набор программных компонентов, которые можно использовать для создания других программных компонентов или приложений. Каждая платформа Java предоставляет виртуальную машину и API, что позволяет приложениям, написанным для этой платформы, работать на любой совместимой системе со всеми преимуществами языка программирования Java: независимость от платформы, мощность, стабильность, простота разработки и безопасности.

Java SE Когда большинство людей думает о языке программирования Java, они думают о Java SE API. Java SE API предоставляет основные функциональные возможности языка программирования Java. Он определяет все: от основных типов и объектов языка программирования Java до высокоуровневых классов, которые используются для создания сетей, обеспечения безопасности, доступа к базе данных, разработки графического интерфейса пользователя (GUI) и анализа XML.

В дополнение к основному API платформа Java SE состоит из виртуальной машины, средств разработки, технологий развертывания и других библиотек классов и наборов инструментов, обычно используемых в приложениях Java.

Java EE Платформа Java EE построена поверх платформы Java SE. Платформа Java EE предоставляет среду API и среды выполнения для разработки и запуска широкомасштабных, многоуровневых, масштабируемых, надежных и безопасных сетевых приложений.

Java ME Платформа Java ME предоставляет API и небольшую виртуальную машину для запуска приложений Java для программирования на небольших устройствах, таких как мобильные телефоны. API - это подмножество Java SE API, а также специальные библиотеки классов, полезные для разработки небольших приложений. Приложения Java ME часто являются клиентами служб платформы Java EE.

JavaFX JavaFX - это платформа для создания богатых интернет-приложений с использованием легкого API интерфейса пользователя. Приложения JavaFX используют аппаратные ускорители графических и медиа-движков, чтобы использовать преимущества высокопроизводительных клиентов и современный внешний вид, а также API высокого уровня для подключения к сетевым источникам данных. Приложения JavaFX могут быть клиентами служб платформы Java EE.