JavaSE

Java Standard Edition,Java 标准版,是一个 Java 开发工具包,可以看作是JavaEE的子集。它允许开发和部署在桌面、服务器、嵌入式环境和实施环境中使用的Java应用程序。JavaSE 包括支持Java Web服务开发的类,并为Java Platform,Enterprise Edition(Java EE)提供基础。

JavaEE

Java Enterprise Edition,Java企业版,多用于企业级开发,包括web开发等等。企业版本帮助开发和部署可移植、健壮、可伸缩切安全的服务端Java应用。Java EE是在JavaSE的基础上构建的他提供Web 服务、组建模型、管理和通信API。可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和web2.0应用程序。

JavaEE 基本上是一个服务器端的Web应用程序框架。JEE 是一个从一罐字母汤中拉出来的一份规范的洗衣列表,多个供应商(IBM、Oracle、红帽、阿帕奇)都拿出了自己的实现和服务器来运行其版本的软件规范。

Java EE(Oracle 已将 JEE 的管理权转移到 Eclipse 基础,并重命名为 Jakarta EE)是 Java API 的集合,主要用于服务器端编程。

Java EE 被抛弃到 Eclipse 墓地。无论如何,你都不想处理它。除非你的工作明确要求必须使用。有用的 JavaEE 规范被其他规范(如 Spring)适应。

Java EE是一系列技术标准所组成的平台,包括:

  • Applet - Java Applet
  • EJB - 企业级JavaBean(Enterprise Java Beans)
  • JAAS - Java Authentication and Authorization Service
  • JACC - J2EE Authorization Contract for Containers
  • JAF - Java Beans Activation Framework
  • JAX-RPC - Java API for XML-Based Remote Procedure Calls
  • JAX-WS - Java API for XML Web Services
  • JAXM - Java API for XML Messaging
  • JAXP - Java XML解析API(Java API for XML Processing)
  • JAXR - Java API for XML Registries
  • JCA - J2EE连接器架构(J2EE Connector Architecture)
  • JDBC - Java数据库联接(Java Database Connectivity)
  • JMS - Java消息服务(Java Message Service)
  • JMX - Java Management
  • JNDI - Java名称与目录接口(Java Naming and Directory Interface)
  • JSF - Java Server Faces
  • JSP - Java服务器页面(Java Server Pages)
  • JSTL - Java服务器页面标准标签库(Java Server Pages Standard Tag Library)
  • JTA - Java事务API(Java Transaction API)
  • JavaMail
  • Servlet - Java Servlet API
  • StAX - Streaming APIs for XML Parsers
  • WS - Web Services

区别

jdk不分javaME,javaSE,javaEE

Java 11后,Java SE 和 Java EE 之间的区别不再存在。

J2SE和J2EE的区别就是包含的规范不同,J2SE主要是JVM规范,Java语言规范之类的,J2EE就是servlet规范,JMS规范之类的,JSP好像也是,所以但凡开发个网页就算J2EE了,另外我没记错的话JDBC算J2SE,但是数据库连接池是J2EE,所以开发swing不连数据库,或者只使用JDBC才能算J2SE

大多数项目仅使用 JEE 的一小部分,通常使用 JPA 进行持久性,JTA 用于事务管理,CDI/EJB 用于依赖项注入,服务 HTTP 请求的 Servlet,用于 REST 的 JAX-RS。

随着时代的进步,以及越来越多的公司和组织参与到Java世界,出现了各种各样的Java EE组件的代替者,比如Hibernate、Spring就是其中两个典型。Java EE规范不太受欢迎,他们制定了JSF规范,但实际企业开发喜欢用Struts 2、Spring MVC;他们制定了EJB规范,但实际企业开发往往还是喜欢用Spring;他们制定了JPA规范,但实际企业开发往往还是喜欢直接用Hibernate、MyBatis。

通常,应用程序使用 Spring 而不是某些 JEE 规范,特别是用于依赖项注入、事务管理和服务 REST。然后,这些应用程序通常只部署到一个 Servlet 容器,如 Tomcat 或 Jetty,而不是一个完整的 JEE 应用程序服务器。

生成/依赖管理工具(如 Maven 或 Gradle)也将用于任何实际项目。