I see many different Java terms floating around. I need to install the JDK 1.6. It was my understanding that Java 6 == Java 1.6. However, when I install Java SE 6, I get a JVM that reports as version 11.0! Who can solve the madness?
Java SE 6 vs. JRE 1.6 vs. JDK 1.6 – What Do These Mean?
java
Related Solutions
The JRE is the Java Runtime Environment. It is a package of everything necessary to run a compiled Java program, including the Java Virtual Machine (JVM), the Java Class Library, the java
command, and other infrastructure. However, it cannot be used to create new programs.
The JDK is the Java Development Kit, the full-featured SDK for Java. It has everything the JRE has, but also the compiler (javac
) and tools (like javadoc
and jdb
). It is capable of creating and compiling programs.
Usually, if you only care about running Java programs on computer you will only install the JRE. It's all you need. On the other hand, if you are planning to do some Java programming, you need to install the JDK instead.
Sometimes, even if you are not planning to do any Java development on a computer, you still need the JDK installed. For example, if you are deploying a web application with JSP, you are technically just running Java programs inside the application server. Why would you need the JDK then? Because the application server will convert JSP into Java servlets and needs to use the JDK to compile the servlets. I am sure that there are more examples.
No, but yes.
JDK means Java Development Kit 6.
It's an implementation of the Java SE 6 platform as specified by JSR 270 together with a set of development tools (the implementation of the platform without the development tools is called the JRE: Java Runtime Environment).
For some reason the internal version number of the JDK 6 is "1.6" (or 1.6.0_17 for example). But that's only the internal version number of that piece of software. The Java platform itself is simple "Java SE 6" (no "1." anywhere to see).
So to re-iterate:
- "Java 6" usually means "Java SE 6"
- "Java SE 6" is the "Java Standard Edition 6 platform", which is a specification of what the platform looks like
- "JDK 6" is the "Java Development Kit 6", which is a development kit for Java SE 6
- The internal version number of the software components that make up JDK 6 is "1.6.x"
- "JDK 1.6" doesn't exist, strictly speaking, but is usually written to refer to JDK 6
- "Java 1.6" doesn't exist, strictly speaking, but is usually written to refer to Java SE 6
So if you're told to install "Java 1.6" for a software development course, then the JDK 6 is definitely the correct piece of software to install.
Update: yes, all of the above is still correct after Oracle bought Sun and Java 7 (specified in JSR 336) was released. Java 7 still uses "1.7.0" as the internal version number.
Best Answer
SE defines a set of capabilities and functionalities; there are more complex editions (Enterprise Edition – EE) and simpler ones (Micro Edition – ME – for mobile environments).
The JDK includes the compiler and other tools needed to develop Java applications; JRE does not. The JDK also includes a JRE. So, to run a Java application someone else provides, you need a JRE; to develop a Java application, you need a JDK.
Edited: As Chris Marasti-Georg pointed out in a comment, you can find out lots of information on Sun's Java website, and in particular from the Java SE section (2nd option, Java SE Development Kit (JDK) 6 Update 10).
Edited 2011-04-06: The world turns, and Java is now managed by Oracle, which bought Sun. Later this year, the
sun.com
domain is supposed to go dark. The new page (based on a redirect) is this Java page at the Oracle Tech Network. (See also java.com.)Edited 2013-01-11: And the world keeps on turning (2012-12-21 notwithstanding), and lo and behold, JRE 6 is about to reach its end of support. Oracle says no more public updates to Java 6 after February 2013.
Within a given version of Java, this answer remains valid. JDK is the Java Development Kit, JRE is the Java Runtime Environment, Java SE is the standard edition, and so on. But the version 6 (1.6) is becoming antiquated.
Edited 2015-04-29: And with another couple of revolutions around the sun, the time has come for the end of support for Java SE 7, too. In April 2015, Oracle affirmed that it was no longer providing public updates to Java SE 7. The tentative end of public updates for Java SE 8 is March 2017, but that end date is subject to change (later, not earlier).