Since the long time, Java developers have relied on both of these platforms to do the desired tasks through the language. Many newbie developers find it hard to understand the difference between Java SE and Java EE, and often end up considering them an entirely different programming languages… perhaps because they’ve learned a different language in the past which had no funny sounding distinctions within the language. If you’ve been reading my blog, then you know that I’ve been writing on Java, thus it makes sense to cover the commonly asked topic.
In this article, I will try to highlight the difference between Java SE and Java EE.
What is Java SE?
It is the name of the Java platform which provides the core tools.When Java was released, its first version was simply called “Java”, but when the 4th version was released in 1998, it was renamed as J2SE 1.2, wherein “J2” represents the Java 2, which then further replaced with Java SE as the previous name caused the confusion as to why J2SE had versions like 1.x, for instance, people assumed that J2SE 1.6 is an entirely different version. In Java SE, you are provided with the necessary tools to compile the Java programs with the help of different APIs, which is then run through the JVM (Java Virtual Machine). Apart from simple building tools, it also has GUI libraries / framework for building sophisticated GUI powered applications.
In the Java community, Java SE is also known as “Core Java” unofficially. According to the official site: “When most people think of the Java programming language, they think of the Java SE API. Java SE’s API provides the core functionality of the Java programming language. It defines everything from the basic types and objects of the Java programming language to high-level classes that are used for networking, security, database access, graphical user interface (GUI) development, and XML parsing.”. Its latest version is Java 8.
What is Java EE?
It is the super-set of Java SE, meaning it has all the features of Java EE. It is the Enterprise Edition, which basically means that it has all the features that are specifically added for the development of giant Enterprise applications. The cool thing about Java EE is that you do not need to compile your Java code to a stand-alone executable, as the platforms provide the built-in environment to compile / run the code without the need of a stand-alone executable. This results in extremely fast software development cycle. Java EE has a web framework based upon Servlets (i.e., a class used to extend the capabilities of servers). Apart from it, JSP (Java Server Pages) is provided which is a template language that compiles from JSP to a Java Servlets where it can be run by the container (the environment of Java EE). Other features include JPA, JDBC, etc.
Through Java EE, you can develop web server applications, although you need Java EE compatible servers like GlassFish, JBoss, WildFly, etc., so Java EE is more of a “platform” than simple tools. According to the official site: “The Java EE platform is built on top of the Java SE platform. The Java EE platform provides an API and runtime environment for developing and running large-scale, multi-tiered, scalable, reliable, and secure network applications.”