Computing software platform

Java Platform, Standard Edition (Java SE) is a computing platform, technical standard for execution of applications on independent Java-supported platforms as such portable code for desktop and server environments. Java SE was … Wikipedia
Factsheet
Player software Java
Programming language(s) Java
Factsheet
Player software Java
Programming language(s) Java
🌐
Wikipedia
en.wikipedia.org › wiki › Java_Platform,_Standard_Edition
Java Platform, Standard Edition - Wikipedia
2 weeks ago - Java Platform, Standard Edition (Java SE) is a computing platform, technical standard for execution of applications on independent Java-supported platforms as such portable code for desktop and server environments.
🌐
Oracle
oracle.com › java › technologies
Java SE | Oracle Technology Network | Oracle Canada
Discover, monitor, and manage your Java environment with this powerful new Oracle Cloud service, wherever your Java is running—on-premises or in the cloud. Know which Java versions are installed and which versions are being used—all in a single pane of glass. ... Deployment rule set allows a desktop administrator to control the level of Java client compatibility and default prompts across an organization.
🌐
Oracle
java.com › en › download › manual.jsp
Download Java
Developers are encouraged to download the latest Java Development Kit from OTN downloads. Enterprise users with access to My Oracle Support or Oracle Software Delivery Cloud should download through those services.
🌐
Oracle
oracle.com › ca-en › java › technologies › downloads
Download the Latest Java LTS Free
Download the Java including the latest version 17 LTS on the Java SE Platform. These downloads can be used for any purpose, at no cost, under the Java SE binary code license.
🌐
Oracle
java.com › en › download › help › techinfo.html
Where to get Java technical information
Java EE is a platform-independent, Java-centric environment for developing, building and deploying Web-based enterprise applications online. Java EE includes many components of the Java Standard Edition (Java SE).The Java EE platform consists of a set of services, APIs, and protocols that provide ...
🌐
CodeJava
codejava.net › java-se › what-is-java-se
What is Java SE?
Java Platform, Standard Edition (Java SE) refers to the most fundamental set of libraries and tools which you can use to develop and deploy Java applications running on desktop (console programs and GUI applications).A Java SE installation includes Java Development Kit (JDK) and Java Runtime ...
🌐
Wikipedia
en.wikipedia.org › wiki › Java_version_history
Java version history - Wikipedia
5 days ago - Regarding Oracle's Java SE support roadmap, Java SE 25 (LTS) is the latest version as of September 2025, while versions 21, 17, 11 and 8 are the other still supported (long-term support − LTS) versions, where Oracle Customers will receive Oracle Premier Support.
🌐
Adoptium
adoptium.net
Home | Adoptium
Backed by enterprise-grade commercial supporters, ensuring seamless integration, scalability, and long-term sustainability. Eclipse Adoptium provides runtime binaries that are high performance, enterprise-caliber, cross-platform, open-source licensed, Java SE TCK-tested and compliant for general use across the Java ecosystem.
Find elsewhere
Top answer
1 of 4
7

“Java SE” is three things:

  • An abbreviation of “Java Standard Edition”
  • A trademark owned by Oracle Corp.
  • A set of specifications published by Oracle Corp.

Anybody in the world is free to write software that implements the Java SE specifications. In the past, several companies have done so.

However, anybody in the world is not free to use the trademark of Java. To use that trademark, a person or company is required to come to terms with Oracle in a licensing deal. Presumably that deal would require payment.

Long story short, and over-simplified for brevity… Some of the companies that previously wrote their own implementations of Java SE decided to join forces, combine their codebases, and publish the whole thing as open-source. These companies included Oracle, IBM, and Apple. Thus was born the OpenJDK project (Wikipedia). Since then, other companies and individuals have joined the project.

The OpenJDK name is a trademark owned by Oracle. However, Oracle has published permission allowing others to use the term with no payment required.

The OpenJDK project published source code to an implementation of the Java SE specifications. The project does not publish built binaries or installers.

Several vendors do publish built binaries or installers for implementations of the Java SE specs. Nearly all of these implementations rely largely, if not entirely, in the OpenJDK source code.

These binaries/installers vendors include, in no particular order:

  • Azul Systems
  • SAP
  • Amazon
  • Microsoft
  • IBM
  • Red Hat
  • Oracle
  • Adoptium
  • BellSoft

… and more.

Most of those built binary or installers products use OpenJDK in their name or in their descriptions, as allowed by Oracle. A few of those products may use the term Java or Java SE with explicit permission from Oracle.

There are other editions of Java technology:

  • Java Card (for smart cards, badges, etc.)
  • Java ME, or Micro Edition (for constrained devices)
  • Java EE, or Enterprise Edition (a wide collection of specifications that run on top of an implementation of the Java SE specs, aimed at developers making software for enterprise oriented users)

The first two, Java Card & Java ME are owned by Oracle. The third, Java EE, was donated by Oracle Corp to the Eclipse Foundation were it is now known as Jakarta EE. Jakarta EE is a collection of specifications, with various vendors publishing implementations.

The term “JDK” refers to Java Development Kit. This kit includes an implementation of the Java SE specs, plus tools to write Java apps. These tools include a compiler.

The term “JRE” refers to Java Runtime Environment. This is a JDK minus some of the software development tools.

The term “JVM” refers to Java Virtual Machine. A JVM is a piece of software that enables a Java-based app to execute at runtime on a particular kind of host computer and operating system. Java apps are platform-agnostic, in other words, are not “native”. So a Java app needs a particular JVM to know how to run on a Mac, on a PC, or on a mainframe.

Every JDK and every JRE contains a JVM.

2 of 4
1

1 . Yes, you can think of Java SE same as JDK. Java SE is the 'base' platform that defines the Java language specification (JLS), the Java Virtual Machine Specification (JVMS), Standard library APIs, byte-code format, compilation tools, and the class loader.

Now, this is all concepts and specifications and community proposals (via JCP) until implemented into a set of software tools. The set of software and tools that implements all of the above is called JDK.

JDK is essentially a Software Development Kit (SDK). They simply decided to name it JDK.

2 . Yes, Java SE is basically a set of specs. An implementation must follow the spec and get it reviewed & approved by Oracle before they can call their implementation Java.

In the case of Java EE the specifications deal with libraries & APIs most of the time. In case of Java SE the specs also care about language and VM details. You take Java SE (the standard JDK) + add some libraries and now you have Java EE. Oracle refers to this as Java EE SDK though.

3 . Unless your life depends on it. Just understand the relationship between Java SE, Java EE, JDK, SDK, and you are good. Just connect the dots and be done with it.

🌐
PCMAG
pcmag.com › home › encyclopedia › j
Definition of Java SE | PCMag
(Java Platform, Standard Edition) The Java operating environment installed in the user's computer. Owned by Oracle, Java SE contains the Java Virtual Machine (JVM) runtime engine and software routines necessary to execute Java programs in a ...
🌐
Reddit
reddit.com › r/javahelp › java / java se / jdk / jre - which is which and what do i want?
r/javahelp on Reddit: Java / Java SE / JDK / JRE - which is which and what do I want?
July 4, 2021 -

Okay, context. I'm trying out some programming languages to perhaps get into (after previously primarily doing stuff with C#). One of these is Java. I had a 2019 version of Eclipse installed from last time I wanted to learn Java. Updated it to 2021, and it tells me I need Java 11 or higher.

So I google "download Java". Oracle offers me to download Java 8 Update 291, released April 2021. I check my instaleld version. Sure enough, I have Java 8 Update 291. If I am up to date, why is Eclipse complaining, I wonder? So I google Java 11. Huh, what's that, there are versions of Java up to 16? One article mentions that Java 8 has been deprecated for years. Odd, I think, didn't Oracle tell me just now that Java 8 was released in 2021? Oh, I see, they are talking about something called "Java SE". So I google what that is. "java vs java se", I google, but all I get are articles about how Java SE is different from something called Java EE. Never heard of it, I don't want it. In the meantime, I have also googled for JDK, since I assume that I need the Java SDK to get the compilers. Maybe the JDK has a different version number than the JRE, I theoretise. But then what is this Java SE? At one point, it says it's the standard edition, but on the next page, it says it's "for reference purposes only". Whatever that means. Can I use it to run and compile Java or not, I ask.

tldr: why is there a Java 16 if Oracle tells me 8 is the latest, which one do I want to run and program with the latest Eclipse?

P.S. necessary context is perhaps that I'm on 64-bit Windows 7 (my Eclipse install on my Linux laptop works fine)

Top answer
1 of 5
6
The JRE is the Java Runtime Environment, you need it to run java applications. The JDK is the Java Development Kit, you need it to compile your code, it also includes the JRE. About Java SE and EE, to my understanding, I may be wrong here, SE is Standard Edition, what you use for personal use. Java EE is the enterprise Edition, is used by business and you have to pay for it. About the versions. There is java up to 16, at the moment the most used Java versions are Java 8, Java 11 and Java 16 (the latest). Java 8 is used because Java 9 broke lots of Java 8 applications, only use it to run Java 8 applications not develop. Java 11 is the most used to make applications, if you don't use the latest version to make your applications probably you want to use this one. Java 16 is just the latest. These 3 java versions are the ones that are still receiving new builds ('updates'). When you search to download Java oracle will most likely give you the latest build of Java 8. I recommend you installing the JDK of Java 11 and 16 and if you want the JRE of Java 8. To download the JDK just search for "Java 11 jdk" and this page will show up.
2 of 5
1
Please ensure that: Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions You include any and all error messages in full You ask clear questions You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions. Trying to solve problems on your own is a very important skill. Also, see Learn to help yourself in the sidebar If any of the above points is not met, your post can and will be removed without further warning. Code is to be formatted as code block (old reddit: empty line before the code, each code line indented by 4 spaces, new reddit: https://imgur.com/a/fgoFFis ) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc. Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit. Code blocks look like this: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above. If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures. To potential helpers Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice. I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
🌐
Javatpoint
javatpoint.com › java-se
Java SE | Java Standard Edition - Javatpoint
Java SE | Java Standard Edition with oops, string, exceptions, multithreading, collections, jdbc, rmi, fundamentals, programs, swing, javafx, io streams, networking, sockets, classes, objects etc,
🌐
Oracle
jdk.java.net
JDK Builds from Oracle - Java.net
Looking for Oracle JDK builds and information about Oracle’s enterprise Java products and services?
🌐
Oracle
java.com › releases
JDK Releases
The Java Community Process (JCP) standardizes and ratifies the Java SE Platform via a Java Specification Request (JSR). Every JSR consists of three components: a Specification, a Reference Implementation (RI), and a Technology Compatibility Toolkit (TCK).
🌐
Bell Software
bell-sw.com › pages › downloads
Java Download | Java 8, Java 11, Java 17, Java 21, Java 25 - OpenJDK Builds for Linux, Windows & macOS
Java SE (Java Platform, Standard Edition) is Oracle's commercial Java platform that includes the JDK and all necessary tools and libraries for developing and running Java applications. Java SE requires a license for commercial use and includes technical support from Oracle.
Top answer
1 of 5
105

Yes, it can be confusing.

You didn't ask for it, but I'll start from here. The JVM is the Java Virtual Machine. It is a program that can read compiled Java code (the .class files, and the .jar files that are simply .zip files containing a bunch of .class files packaged together) and execute it. There are many JVMs, for example you need a JVM for Windows, one for Linux, one for OSX etc. but there are also many alternative JVMs, JVMs for embedded device etc. (many will disagree and say that the JVM is only one, and it's a specification. However, commonly a sysadmin will say "the JVM" to indicate the actual binary running on the server).

You didn't ask for the following either. The JRE is the Java Runtime Environment. It includes everything needed to run a Java application, that is the JVM itself, the standard library and a bunch of other files. The standard library is itself very important, because it contains a lot of useful things you'll use when developing Java applications. It contains all the stuff in java.* packages and some private stuff in com.sun, com.oracle packages.

Different versions of Java (1.0, 1.1, etc. all the way to 1.7, also known as Java 7) usually contain improvements to both the JVM and the standard library, so the two usually need to run together, and are packaged together in the JRE.

If you are running any Java program on your computer, you have a JRE installed.

The JDK is the Java Development Kit. It contains the JRE as well as a lot of other useful stuff for developing Java applications. That includes the compiler obviously (which is also contained in the JRE for some good reason, but you can ignore this fact now), the JAR utility to create .jar files, many tools for "decompiling" class files, inspect .jar files, repackage them, etc.

It also usually contains documentation for the standard library and also all the sources of the standard library, because they are useful for developers to read and inspect. If you want to seriously develop Java applications, you need the JDK.

When talking about JavaSE, JavaEE, JavaME etc. those are so called "editions". Basically, since the Java ecosystem is huge, Sun decided to offer Java in different editions:

  • JavaSE: is the standard edition, it is usually a good fit for client side software, normal applications, etc.
  • JavaME: is the mobile edition, it is what small games on old phones was made with, but it's basically a "smaller" version of Java suitable for very low capacity processors.
  • JavaEE: is the "enterprise edition". It is used to develop server side stuff, so it includes a lot of libraries used on server side.

Regarding numbering, they messed it up quite a bit. Actually, after Java 1.4 they created the JCP, to involve the community in the development of Java itself, and starting from Java 1.5 it is officially named "Java 5", despite most in the industry calling it 1.5. Also, Java 1.2 was Java 2, but everyone I know who was not working in Sun at that time always called it 1.2.

2 of 5
21

Is Java 7 just Java SE 7? and Java 6 is Java SE 6?

Yes.

There are a couple of Java "editions", namely Java SE, the "Standard Edition", Java EE, the "Enterprise Edition" and Java ME, the "micro edition".

"Java N" where N is some number refers to the SE. There are separate edition numbers for Java EE which is up to version 6 now. Java ME has its own versions as well - it is currently at version 3. Java ME is intended for mobile and small devices.

Java EE is a set of libraries and interfaces, such as EJB, JMS, JNDI, Servlets/JSPs that are built on top of the Java SE.

Is Java SE 7 also Java JDK 7? and also what is the JDK?

JDK = Java Development Kit. When you download Java you can either get the JRE (Java Runtime Environment) which only lets you run already compiled Java applications or you can get the JDK which allows you to compile and run Java apps. Java SE 7 refers to both the JDK and the JRE.

Does this mean that the java JDK is the same as the java number (Java SE 7)?

Yes.

what is java 1.5 and 1.6? and how does that correspond to the java number (Java SE...)?

Sun's numbering for Java changed midstream and is a bit confusing. They went from 1.0 to 1.1 then 1.2. Then they decided to call 1.2 "Java 2" and that label lasted until Java 1.4. Then Java 5 was called both 1.5 and 5.0 and that has continued - Java 7 is also Java 1.7, Java 6 is also Java 1.6, etc.

Is Java's SDK the same as the JDK?

Yes.