What's the main difference between Java SE and Java EE?
-
http://www.daniweb.com/forums/thread97463.html – Secko Jun 30 '09 at 18:36
-
[Java SE vs Java EE](https://github.com/ThreaT/Java-SE-vs-Java-EE) – Jun 25 '15 at 14:45
11 Answers
Java SE (formerly J2SE) is the basic Java environment. In Java SE, you make all the "standards" programs with Java, using the API described here. You only need a JVM to use Java SE.
Java EE (formerly J2EE) is the enterprise edition of Java. With it, you make websites, Java Beans, and more powerful server applications. Besides the JVM, you need an application server Java EE-compatible, like Glassfish, JBoss, and others.
Java SE stands for Java standard edition and is normally for developing desktop applications, forms the core/base API.
Java EE stands for Java enterprise edition for applications which run on servers, for example web sites.
Java ME stands for Java micro edition for applications which run on resource constrained devices (small scale devices) like cell phones, for example games.

- 37,782
- 12
- 108
- 140

- 4,171
- 13
- 64
- 105
http://www.dreamincode.net/forums/topic/99678-j2se-vs-j2ee-what-are-main-differences/
As far as the language goes it is not as though java changes. Java EE has access to all of the SE libraries. However EE adds a set of libraries for dealing with enterprise applications.
Java EE is more like a "platform" or an general area of development.
In Java SE you write applications that run as standalone java programs or as Applets. In JavaEE you can still do this, but you can also write applications that run inside of a Java EE container. The container can do a great amount of management for you such as scaling an application across threads, providing resource pools, and management features.
Java EE has a web framework based upon Servlets. It has JSP (Java Server Pages) which is a templating language that compiles from JSP to a Java servlet where it can be run by the container.
So Java EE is more or less Java SE + Enterprise platform technologies.
Java EE is far more than just a couple of extra libraries (that is what I thought when I first looked at it) since there are a ton of frameworks and technologies built upon the Java EE specifications.
But it all boils down to just plain old java.

- 37,782
- 12
- 108
- 140

- 354
- 3
- 6
-
you know that EE stands for 'Enterprise Edition' right? And it's not one product but a set of products. – pedrofurla Oct 11 '12 at 02:31
-
1@Mohiul This is a great response because you talk about the relationship between Java EE and Java SE. The former is basically a superset of the latter. – Tim Biegeleisen Jan 15 '15 at 05:52
-
I think, this must be marked as correct answer, as it gives complete information. – Mangu Singh Rajpurohit Nov 05 '15 at 04:36
Java SE refers to the standard version of Java and its libraries. Java EE refers to the Enterprise edition of Java which is used to deploy web applications.

- 37,782
- 12
- 108
- 140

- 11,476
- 16
- 65
- 104
-
4Why on earth would someone down vote this? Did i provide false information? Some people are just weird... – Savvas Dalkitsis Jun 30 '09 at 19:53
-
4I was about to downvote (but in the end I didn't, I decided to write this comment instead) because "web applications" is just one of the several situations in which you would need a server (thus you would use EE instead of SE). – mastazi Jun 23 '13 at 03:33
-
3by 'web application' i didn't only mean 'web sites'. I should have said, server applications to be more clear, you are right – Savvas Dalkitsis Jun 24 '13 at 16:19
Java EE is enterprise edition.
Includes jsp, servlets, beans, and some other stuff for server programming.
Java SE is standard edition. This is plain old Java. Includes GUI stuff.

- 37,782
- 12
- 108
- 140

- 43,810
- 29
- 138
- 169
First, J2SE and J2EE have been renamed. They're now Java SE and Java EE.
Essentially, Java SE is your standard Java designed for end-users. That's what you'd develop to for desktop applications. Java EE is the enterprise edition, designed for server programming, such as SOA and web applications.
-
-
6@John: No! Old names are bad! You will accept whatever garbage Sun's marketing department feeds you, and you will like it! – Pesto Jun 30 '09 at 20:09
-
1
Best description i've encounter so far is available on Oracle website.
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.
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.
If you consider developing application using for example Spring Framework you will use both API's and would have to learn key concept of JavaServer Pages and related technologies like for ex.: JSP, JPA, JDBC, Dependency Injection etc.
-
What is the description then - don't just give a link - and is that answer different to older answers here – mmmmmm Jun 29 '13 at 13:30
-
@Mark i've updated answer especially for you, but i still think content duplication is bad idea. – xyz Jun 30 '13 at 10:38
-
See this site's help "Links to external resources are encouraged, but please add context around the link so your fellow users will have some idea what it is and why it’s there. Always quote the most relevant part of an important link, in case the target site is unreachable or goes permanently offline. " – mmmmmm Jun 30 '13 at 11:33
Java SE contains all the base packages. Some of the base packages are written in Java and some are written in C/C++. The base packages are the fastest because there are no additional layers on top of their core functionality.
Java EE is a set of specifications and the respective implementations are all built using Java SE base packages which happen to already contain everything required for any application. For example, for a web application, here is a Java SE Web Server and a Java SE Database.
Java SE 9/10 is expected to contain better support for native in order to improve the inherent performance issues it has from being an interpreted language. Using the enormous Java EE implementations implies a willingness to sacrifice performance, scalability and a lot of time and money for education and updates, in exchange for project standardization.

- 56,849
- 55
- 141
- 195
JavaSE and JavaEE both are computing platform which allows the developed software to run.
There are three main computing platform released by Sun Microsystems, which was eventually taken over by the Oracle Corporation. The computing platforms are all based on the Java programming language. These computing platforms are:
Java SE, i.e. Java Standard Edition. It is normally used for developing desktop applications. It forms the core/base API.
Java EE, i.e. Java Enterprise Edition. This was originally known as Java 2 Platform, Enterprise Edition or J2EE. The name was eventually changed to Java Platform, Enterprise Edition or Java EE in version 5. Java EE is mainly used for applications which run on servers, such as web sites.
Java ME, i.e. Java Micro Edition. It is mainly used for applications which run on resource constrained devices (small scale devices) like cell phones, most commonly games.

- 190
- 1
- 7
In Java SE you need software to run the program like if you have developed a desktop application and if you want to share the application with other machines all the machines have to install the software for running the application. But in Java EE there is no software needed to install in all the machines. Java EE has the forward capabilities. This is only one simple example. There are lots of differences.

- 37,782
- 12
- 108
- 140

- 51
- 1
- 1
-
Could you clarify that? Java EE needs a JVM just like Java SE. What are "forward capabilities"? – Jerry101 May 11 '15 at 22:19
The biggest difference are the enterprise services (hence the ee) such as an application server supporting EJBs etc.

- 113,588
- 46
- 195
- 237

- 73,752
- 17
- 161
- 228