Difference between Java SE/EE/ME?

Java SE = Standard Edition. This is the core Java programming platform. It contains all of the libraries and APIs that any Java programmer should learn (java.lang, java.io, java.math, java.net, java.util, etc...).

Java EE = Enterprise Edition. From Wikipedia:

The Java platform (Enterprise Edition) differs from the Java Standard Edition Platform (Java SE) in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier Java software, based largely on modular components running on an application server.

In other words, if your application demands a very large scale, distributed system, then you should consider using Java EE. Built on top of Java SE, it provides libraries for database access (JDBC, JPA), remote method invocation (RMI), messaging (JMS), web services, XML processing, and defines standard APIs for Enterprise JavaBeans, servlets, portlets, Java Server Pages, etc...

Java ME = Micro Edition. This is the platform for developing applications for mobile devices and embedded systems such as set-top boxes. Java ME provides a subset of the functionality of Java SE, but also introduces libraries specific to mobile devices. Because Java ME is based on an earlier version of Java SE, some of the new language features introduced in Java 1.5 (e.g. generics) are not available.

If you are new to Java, definitely start with Java SE.


Here are some differences in terms of APIs

Java SE includes has the following APIs and many more

  • applet
  • awt
  • rmi
  • jdbc
  • swing
  • collections
  • xml binding
  • JavaFX (Merged to Java SE 8)
  • Java 8 Collections Streaming API
  • Java 9 Reactive Streams API
  • Java 9 HTTP/2 API

Java EE includes the following APIs and many more

  • servlet
  • websocket
  • java faces
  • dependency injection
  • ejb
  • persistence
  • transaction
  • jms
  • batch api

Java ME includes the following APIs and many more

  • Wireless Messaging
  • Java ME Web Services
  • Security and Trust Services API
  • Location
  • Mobile XML API

Hope this helps.