Как соотносятся JAVA EE и JVM?

Общеизвестно, что Java EE - это набор спецификаций. GlassFish - это одна из реализаций этой спецификации (есть и другие реализации, например Tomcat, итд). Java SE - это грубо говоря JVM + стандартные библиотеки + средства компиляции (разработки)

Собственно, теперь вопрос. Объясните, пожалуйста, при установке GlassFish или Tomcat, эти серверы приложений используют под собой JVM (от JAVA SE) и стандартные (базовые) библиотеки или при установке сервера приложений ставится свой JVM? Означает ли это что при установке какой-нибудь реализации JAVA EE устанавливается также JAVA SE, так как первому нужно юзать JVM и стандартные (базовые) библиотеки?


Ответы (1 шт):

Автор решения: Barmaley

Давайте определимся с терминологией:

  1. JVM это среда в которой выполняется Java приложение. Бывают разные JVM - навскидку их несколько десятков (под сотню я думаю). Православная JVM от Oracle/Sun имеет 2 версии клиентскую и серверную.
  2. Java SE набор стандартных библиотек от Sun/Oracle
  3. Java EE - набор спецификаций, которые может реализовать более-менее любой вендор, используя в том числе Java SE. Имеется т.н. референсная реализация Java EE от Sun/Oracle.

Соответственно реализация Java EE обычно работает под серверной JVM используя библиотеки Java SE + еще какие-то другие (специфичные для вендора).

→ Ссылка