Java / Java SE / JDK / JRE - which is which and what do I want?
Java JDK, SDK, SE? - Stack Overflow
Is Java Development Kit safe?
Also, it was often not kept up to date.
More on reddit.comJDK vs JRE : What should I install ?
JDK is to develop/run, JRE is to (only) run.
EDIT: Of course JDK, I'd say that the real problem is which version should I use...
EDIT2: I just read is backwards compatible, so the lastest stable one should do the work.
More on reddit.comVideos
Factsheet
/ 16 September 2025; 6 months ago (2025-09-16)
/ 16 September 2025; 6 months ago (2025-09-16)
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)
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.
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.