Как соотносятся JAVA EE и JVM?
Общеизвестно, что Java EE - это набор спецификаций. GlassFish - это одна из реализаций этой спецификации (есть и другие реализации, например Tomcat, итд). Java SE - это грубо говоря JVM + стандартные библиотеки + средства компиляции (разработки)
Собственно, теперь вопрос. Объясните, пожалуйста, при установке GlassFish или Tomcat, эти серверы приложений используют под собой JVM (от JAVA SE) и стандартные (базовые) библиотеки или при установке сервера приложений ставится свой JVM? Означает ли это что при установке какой-нибудь реализации JAVA EE устанавливается также JAVA SE, так как первому нужно юзать JVM и стандартные (базовые) библиотеки?
Ответы (1 шт):
Давайте определимся с терминологией:
- JVM это среда в которой выполняется Java приложение. Бывают разные JVM - навскидку их несколько десятков (под сотню я думаю). Православная JVM от Oracle/Sun имеет 2 версии клиентскую и серверную.
- Java SE набор стандартных библиотек от Sun/Oracle
- Java EE - набор спецификаций, которые может реализовать более-менее любой вендор, используя в том числе Java SE. Имеется т.н. референсная реализация Java EE от Sun/Oracle.
Соответственно реализация Java EE обычно работает под серверной JVM используя библиотеки Java SE + еще какие-то другие (специфичные для вендора).