This article is participating in “Java Theme Month – Java Debug Notes Event”, see < Event link > for more details.

Question: What do JVM, JDK, JRE, OpenJDK all mean?

Answer a

JVM

A JVM is a virtual machine that runs Java bytecode. The JVM cannot run Java source directly, which is why you need to compile.java files to get.class files that the JVM understands. The JVM is also an important reason why Java can run across platforms. In fact, JVMS have specific implementations on different systems that aim to produce the same effect using the same bytecode.

The JDK and JRE

The best way to understand the difference between the JDK and JRE is to read the official Oracle documentation and understand the following:

  • Java Runtime Environment(JRE)

The JRE provides libraries, JVMS, and other components for running applications written in the Java language. In addition, there are two key technologies in the JRE: The Java Plug-in: enables applets to run on major browsers. Java Web Start, which is independently deployed over the network. It is also the foundation of Java EE development and deployment. The JRE does not include tools for addition applications, such as compilers and debuggers.

  • Java Development Kit (JDK)

The JDK is a superset of the JRE and contains everything in the JRE, as well as the compiler, debugger, and other tools needed to develop applets and applications.

Please note that other organizations besides Oracle maintain the JDK

OpenJDK

OpenJDK is the open source version of the JDK and the foundation of the OracleJDK. There is little difference between the OracleJDK and OpenJDK.

Here’s the official answer:

Our OracleJDK is built on top of OpenJDK. The difference is that we’ve added a few features to the OracleJDK, such as Java WebStart, Java Plugin, and some third-party components such as image processors, as well as bits and pieces such as additional documents and third-party fonts. We will open source the OracleJDK except for the parts that are considered commercial modules.

The article translated from Stack Overflow:stackoverflow.com/questions/1…