

If they are only installing (and not developing or compiling code), then only JRE is needed. If a programmer would like to execute a Java program using the Java command, they should install JRE. JRE is also used in JDB (Java Debugging). JRE uses heap space for dynamic memory allocation for Java objects. Java Runtime Environment, or JRE, is a set of software tools responsible for execution of the Java program or application on your system. Execution Engine contains an interpreter, compiler and garbage collection area.Runtime Data Areas contain method areas, PC registers, stack areas and threads.Class Loader Subsystem is responsible for loading, linking and initializing a Java class file (i.e., “Java file”), otherwise known as dynamic class loading.JVM consists of three main components or subsystems: Native methods are used to move native code written in other languages into a Java application. These applications are called native applications and can often be written in other languages. JNI is a programming framework that enables Java code running in JVM to communicate with (i.e., to call and be called by) applications associated with a piece of hardware and specific operating system platform. Java Native Interface (JNI) is often referred to in connection with JVM. In addition, JVM can run programs written in other programming languages that have been translated to Java bytecode. It is also platform-dependent and performs many functions, including memory management and security. JVM is specifically responsible for converting bytecode to machine-specific code and is necessary in both JDK and JRE. It is known as the interpreter or the core of Java programming language because it executes Java programming. Java Virtual Machine, or JVM, loads, verifies and executes Java bytecode.

Read on and find out how Java Virtual Machine (JVM), Java Runtime Environment (JRE) and Java Development Kit (JDK) each play a role in the Java development process, their relationship to each other and the differences that set them apart. It is primarily used for back-end development projects, game development and desktop and mobile computing. Java is one of the most popular programming languages used in developing environments today. The table below lists packages that are comprised in each profile.How do JVM, JRE and JDK relate and work together in the Java development process?

Each profile specifies a particular set of Java API packages and contains all of the APIs in profiles smaller than itself: compact1 is a subset of compact2, which is a subset of compact3, which in its turn is a subset of the full JRE. Three profiles that have been defined so far are named compact1, compact2, and compact3.
