You might have heard the terms Java EE and Jakarta EE quite often when learning Java programming, but you might still be confused: What does Java EE really mean? What does Jakarta EE really mean? What are the differences???

You’re reading the right post, as I will clear your doubts with the following great explanation about Java EE and Jakarta EE. Read on.

 

1. What is Java EE really about?

Java Platform, Enterprise Edition or Java EE is a collection of technologies (Java Servlet, JSP, JavaMail, JPA, etc) that can be used together to develop and deploy enterprise software applications running on the Java platform. An enterprise application is typically hosted on a server and serves many users via network. In other words, Java EE allows developers to create, build and deploy web applications running on a Java-based enterprise web server, such as GlassFish.

Java EE is extension of Java SE, with enterprise features such as distributed computing and web services. This means you need to have Java Development Kit (JDK) and Java EE SDK installed in order to develop Java EE applications.

And historically, Java EE was formerly named J2EE (Java 2 Platform Enterprise Edition) and was developed by Sun Microsystems. When Oracle acquired Sun, it was renamed to Java EE. Check this article to learn more about Java EE versions.


2. What is Jakarta EE really about?

Jakarta EE is the new name of Java EE after Oracle corporation denoted the platform to the Eclipse Foundation in September 2017. Oracle keeps the Java trademark so Eclipse had to rename all Java EE technologies to Jakarta, e.g., Jakarta Servlet, Jakarta Enterprise Beans, etc.

This means Oracle ended the life of Java EE in the end of 2017, and Jakarta EE is its continuation under the Eclipse Foundation’s management.

So, Jakarta EE is just the new brand name of Java EE, with core technologies remain the same, except that everything starting with “Java” was changed to “Jakarta” including the API package prefix (javax.* was changed to jakarta.*). This also means you should use Jakarta EE to develop enterprise Java applications, as Java EE is outdated.

Check this article to get the full version history of Jakarta EE.


3. Core Technologies in Java EE / Jakarta EE

The Java EE / Jakarta EE platform is composed of various technologies that are defined by specifications. Each specification describes a standard way of implementing a particular aspect of an enterprise Java application. Below is a list of some core Jakarta EE specifications:

  • Jakarta Dependency Injection: common declarative dependency injection annotations
  • Jakarta Enterprise Beans: architecture/API for component-based business applications
  • Jakarta Servlet: a server-side API for handling HTTP requests and responses
  • Jakarta Expression Language: defines an expression language for Java applications
  • Jakarta Faces: MVC framework for building user interfaces for web apps
  • Jakarta Mail: framework to build mail and messaging applications
  • Jakarta Pages: defines a template engine for web applications
  • Jakarta MVC: standardizes the action-based model-view-controller pattern
  • Jakarta Persistence: management of persistence and object/relational mapping
  • Jakarta RESTful Web Services: API to develop web services following the REST pattern

And many more, which you can check here. And when you develop Java enterprise applications, the libraries for these technologies are provided by the application server’s runtime, such as GlassFish runtime. You can also import the libraries via dependency declaration with Maven or Gradle.


4. What can you develop with Java EE / Jakarta EE?

With Jakarta EE, you can develop a wide range of enterprise applications and services. Here are some common types of applications and systems that can be developed using Java EE / Jakarta EE:

  • Web applications: create dynamic and interactive websites using Servlets and JSPs.
  • Enterprise applications: develop business logic applications using Enterprise JavaBeans (EJBs) to encapsulate complex business logic, ensuring scalability and robustness.
  • Web services: develop RESTful webservices for various applications using JAX-RS and JAX-WS
  • Microservices: develop microservice-based applications using Jakarta EE’s support for RESTful webservices, CDI, and other features that facilitate microservice development.
  • E-commerce applications: build robust e-commerce platforms that handle product listings, shopping carts, payment processing and more.
  • Messaging and integration: using Java Message Service (JMS) for asynchronous communication between different components of an application. And develop services that integrate with other systems and platforms.

And much more: financial systems, healthcare systems, government and public sector applications, IoT applications, etc.


5. Learn more about Java EE / Jakarta EE

A great resource to learn Java EE is The Java EE Tutorials published by Oracle. However, it is updated to only Java EE 7. For Java EE 8, you can learn from this Java EE Tutorial on GitHub. These tutorials for Java EE 7 and Java EE 8 are quite comprehensive and detailed so check them out to get started with Java EE.

For Jakarta EE, check out its Starter Guide. It currently has only a few tutorials, but it will be updated in the future.

Additionally, you’ll find the following references helpful:

 

Java EE References:

 

Jakarta EE References:


About the Author:

is certified Java programmer (SCJP and SCWCD). He began programming with Java back in the days of Java 1.4 and has been passionate about it ever since. You can connect with him on Facebook and watch his Java videos on YouTube.



Add comment