Соотношение между версиями Java EE / J2EE и J2SE / JDK - PullRequest
24 голосов
/ 06 января 2010

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

Я ищу ответ на эти вопросы:

  • Существует ли официальная корреляция между версиями 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?

Ответы [ 3 ]

21 голосов
/ 06 января 2010

Существует ли официальная корреляция между версиями 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, 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 ниже. (Это применимо даже после большого ОБНОВЛЕНИЯ выше.)

и есть ли неофициальная таблица версий (например, 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 месяцев).

3 голосов
/ 06 января 2010

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

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

2 голосов
/ 06 января 2010

Как правило, выпуски Java Enterprise выпускаются после 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 EE Java (Glassfish в наши дни), которая отличается от версии Apache Java EE (Tomcat / Geronimo) или версии Java EE (Websphere) от IBM.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...