0% found this document useful (0 votes)
8 views27 pages

Java Platform Components Explained

The document provides a detailed overview of the Java platform and its components, including the Java Development Kit (JDK), Java Runtime Environment (JRE), and Java Virtual Machine (JVM). It explains the roles of each component in executing Java applications and highlights the differences between JDK and JRE. Additionally, it covers the execution flow of Java programs and the significance of platform independence in Java programming.

Uploaded by

tahraoui.wadoud
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views27 pages

Java Platform Components Explained

The document provides a detailed overview of the Java platform and its components, including the Java Development Kit (JDK), Java Runtime Environment (JRE), and Java Virtual Machine (JVM). It explains the roles of each component in executing Java applications and highlights the differences between JDK and JRE. Additionally, it covers the execution flow of Java programs and the significance of platform independence in Java programming.

Uploaded by

tahraoui.wadoud
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Skip to content

Software Testing Help

 Home

 Resources

 FREE eBooks

 QA Testing

 Automation


 Types Of Testing


 Tutorials


 Data Tools


 More Tutorials





Java Components: Java Platform, JDK, JRE, & Java Virtual Machine

By Vijay Updated April 1, 2025

This Tutorial gives a Detailed Description of Java as a Platform and its Components i.e. JRE, JDK,
Java Virtual Machine and Difference Between JRE vs JDK:

Java has been described as a programming language as well as the platform. In our introductory
tutorial, we already discussed that a platform is a software environment using which we can execute
programs or applications.

In this tutorial, we will discuss Java, as a platform. We will also discuss Java platform components and
see how they work.

=> Read Through The Easy Java Training Series.

Table of Contents: [Show]

Java Platform

Java platform is a software or collection of programs that help us to execute applications written in
Java programming language. A Java platform consists of a Java compiler, a set of libraries, and an
execution engine.

Java platform is independent of any particular OS which makes Java programming language a
platform-independent language.

Java platform consists of the following components.

 Java language

 The Java Development Kit (JDK)

 The Java Runtime Environment (JRE)


 The Java Compiler

 The Java Virtual Machine (JVM)

Apart from the above main components, the Java platform also contains garbage collectors, a set of
libraries and other additional components and tools that are required to efficiently run the Java
applications.

Let’s consider the following diagram that depicts the relationship between all these components.

So from the above diagram, we can conclude that,

JRE = JVM + library classes.


JDK = JRE + Developer tools.

Before we take up each of the components, let’s understand the execution flow of Java program
execution first.

The following diagram shows the flow of a Java program.

So the above diagram shows a simple execution flow for a Java program. A program written in Java
language is compiled by the Java compiler (javac). Unlike other language compilers that generate
machine code after compilation, the Javac compiler generates a class file consisting of byte code.
Now, this class file is given to Java Virtual Machine (JVM) that translates the class file into an object
file containing machine-dependent code. Then this code is executed by the machine.

Let’s discuss each of these components in detail.

Java Language

Java is a programming language that the Java platform uses. Java is an object-oriented programming
language whose syntax is derived from C and OOPS features are derived from C++. It has its syntax,
rules, format, and programming paradigm.

In this series, we will learn all the major concepts in Java and programming in detail.

The Java Compiler

This is a compiler for Java programming language and its function is to generate Java class files from
the Java source code. Java class file contains a platform-independent Java byte code.

After generating class files, JVM loads these class files and either interprets the byte code or compiles
it to machine code using Just-in-time (JIT) compiler.

The Java Virtual Machine (JVM)

JVM is the center of Java programming language and Java platform. The JVM converts the byte code
into machine-specific code (also known as object code in other programmer languages).

JVM provides the functionality of garbage collection, memory management, security, etc. JVM is
platform-independent and we can customize its functionality using a Virtual interface it provides
which is not machine-dependent and is also independent of the operating system.

This platform-independence of JVM allows us to create Java programs on one machine and execute
them on another machine (WORA – Write – Once – Run – Anywhere).

The following diagram illustrates the various parts of a JVM.


The JVM is present on the RAM. When the Java program is converted to a class file by the Java
compiler, it needs to be executed.

For execution, the class file is brought on the Ram by the class loader. Here the BYTE code is verified
for any security issues. Classloader is also responsible for loading, linking and initialization of the
program to be executed.

The JVM memory shown in the diagram above contains various components as shown and they help
in the execution of the program by holding PC registers that contain current instruction to be
executed, Heap which holds variables, arrays, etc.

JVM memory also contains method area and Native method stack which contains method code and
native language specification respectively. JVM stack holds the instance of the program or the current
thread. If there is more than one thread than each thread will have its JVM stack.

Once the program is properly linked, then it is passed on to the execution engine. The execution
engine cooperates with the native method interface and native method libraries. Native method
interface is a programming framework that allows Java code to call libraries and native applications
that are a part of the native method libraries.

Next, the execution engine converts the Bytecode into Native machine code using just-in-time (JIT)
compiler. Then the program is executed by the machine.

Note: JIT or Just-in-time compiler is a part of the Java Virtual Machine (JVM). It interprets a part of
the Byte Code that has similar functionality at the same time. In other words, it converts the byte
code into native machine code at the same programming level. This is the reason for which Java is
compiled as well as an interpreted language.
The Java Runtime Environment (JRE)

JRE, as the name suggests, is the runtime environment that is required to execute Java programs and
applications. JRE consists of Java Virtual Machine (JVM) and binaries and other classes to successfully
execute Java programs.

JRE is a subset of JDK and doesn’t contain any development tools such as Java compiler, debugger,
etc. Hence if your Java applications are developed elsewhere, and you need to only execute them on
your machine, then you can install JRE separately. You do need to install JDK for this.

You need a JRE installed on your machine as it’s the minimum requirement to run Java programs on
your machine.

The JRE includes the following components.

 Code libraries, property settings, and resource files: These include files like [Link],
[Link], etc.

 DLL files: Used by Java hotspot client virtual machine and server virtual machine.

 Java extension files: For Example, files related to locale specification like [Link]

 Files required for security management. For Example, [Link], [Link]

 Applet support classes.

 True Type font files: Usually required by the platform.

To execute any application/program written in Java, you need JRE installed on your system. JRE is
platform dependent. This means you need to download and install JRE that’s compatible with your
O.S and architecture.

The Java Development Kit (JDK)

This is the core component of any Java environment. JDK contains JRE (Java Runtime Environment)
along with Java compiler, Java debugger, and other core classes. JDK is used for Java development as
it provides the entire executable and binaries as well as tools required to compile, debug a Java
program.

JDK is a platform-specific software and thus we will have separate JDK installers for each Operating
system.

JDK contains the following components:

 jConsole: This is a Java monitoring and management Console.

 jar: This is the archiver. This tool is used to package related class libraries into a single Jar file
as well as to manage Jar files.

 jarSigner: This tool is used for jar signing and verifying.

 javap: This is a tool for class file disassembler.

 javaws: Java web start launcher for JNLP applications.

 jhat: Java heap analysis tool.

 jrunscript: Java command-line script shell.


 jstack: Utility used to print stack traces for Java threads.

 Javadoc: This automatically generates documentation from the source code comments.

 appletviewer: Used for applet execution and debugging without a web browser.

 apt: Annotation processing tool.

 extCheck: Utility used to check jar file conflicts.

 keytool: Using this utility you can manipulate Keystore.

 policytool: This is a policy creation and management tool.

 xjc: This is a part of the XML binding (JAXB) API that accepts XML schema and generates Java
classes.

Thus you can see that the components of JDK are the ones that are required by us from a
development point of view.

As shown in the above diagram, the Java source code is converted to byte codes by Java compiler
which is a part of JDK. Then this byte code is passed on to JVM (this process already described above)
and from there it goes to JRE where the code is executed.

Having seen the details about JDK and JRE, now let’s discuss the differences between JRE and JDK.
JRE Vs JDK

No JRE JDK

1 JRE stands for Java Runtime Environment. JDK stands for Java

2 Mostly used for the execution of Java programs. JDK is used by dev

3 Contains Java Virtual machine (JVM) bundled inside it. Doesn’t have JVM.

4 JRE doesn’t have Java compiler so cannot compile programs. JDK has javac com

5 Contains java class library, the java command, and other infrastructure. JDK contains tools

6 JRE can be installed as a standalone program. JDK is a separate in

7 Takes the compiled/interpreted Java program as input and generates output. Compiled Java sou

Conclusion

In this tutorial, we discussed the details of the Java Development Kit (JDK) that comes bundled with
Java Runtime Environment (JRE) and Java compiler. JRE, in turn, contains Java Virtual Machine (JVM)
which is responsible for converting byte code generated by Java compiler into machine-specific code.

All these including Java language are components of a parent entity called Java platform which is an
environment that helps us to run a Java application. We also discussed the detailed architecture and
working of JVM as well as the execution of a Java program here.

=> Take A Look At The Java Beginners Guide Here.

Was this helpful?

Recommended Reading

 Java Virtual Machine: How JVM Helps in Running Java Application


A Complete Overview of Java Virtual Machine: Java Deployment was explained clearly in our last
tutorial. Here, we will explore more about JVM. Java Virtual Machine - JVM is a software
implementation of a machine. While downloading JDK, JVM also comes with that. JRE provides the
run-time environment. There are…

 Java Deployment: Creation and Execution of Java JAR File

Introduction to Java deployment: We learned more about Java Swing in our previous tutorial, in this
tutorial, we will learn how to deploy a java project. Once coding has been completed, you have to
wrap all the files as a JAR file and that jar file can be deployed in…

 Java Basics: Java Syntax, Java Class and Core Java Concepts

This Tutorial Provides an Introduction to the Basics of Java Coding Language. We will Introduce Topics
Such as Java Class, OOPS, Syntax, and Core Java Concepts: In our previous tutorials, we have
discussed the characteristics and features of the Java language. We have also learned about Java
applications. We got…

 Java Vs Python - Key Differences Between Java And Python


In this Java Vs Python Tutorial, you will Learn the Major Differences Between Java and Python
Programming Languages and the Drawbacks of Both. Java and Python are the two most popular
programming languages today. While Java has been the most sought after programming language
since its release in 1995, Python…

READ MORE FROM THIS SERIES:

 JAVA Tutorial For Beginners: 100+ Hands-on Java Video Tutorials

 Introduction To Java Programming Language – Video Tutorial

 Java DataTypes, Loops, Arrays, Switch and Assertions

 OOP Java: Introduction To Object Oriented Programming In Java

 Java Interface and Abstract Class Tutorial With Examples

 Java Exceptions And Exception Handling With Examples

 Java String Data Type With String Buffer And String Builder

 Java Threads with Methods and Life Cycle

 Basic I/O Operations In Java (Input/Output Streams)

 Java Collections Framework (JCF) Tutorial

 Java Reflection Tutorial With Examples

 Java SWING Tutorial: Container, Components and Event Handling

 Java Deployment: Creation and Execution of Java JAR File

 Java Virtual Machine: How JVM Helps in Running Java Application

 Access Modifiers In Java – Tutorial With Examples

 Spock Tutorial: Testing With Spock And Groovy

 Writing Unit Tests with Spock Framework

 Spock Mocking and Stubbing (Examples with Video Tutorials)

 Data-driven or Parameterized Testing With Spock Framework

 Spock For Integration And Functional Testing With Selenium

 Java Development Using Eclipse IDE

 Prominent Java 8 Features With Code Examples

 IntelliJ IDEA Tutorial – Java Development With IntelliJ IDE

 Java Hello World – Create Your First Program In Java Today

 Java ‘this’ Keyword: Tutorial With Code Examples


 Java Generics Tutorial With Examples

 What Is Static Keyword In Java?

 Java Iterator: Learn To Use Iterators In Java With Examples

 Introduction To Java Arrays And Related Concepts

 Java Array Length Tutorial With Code Examples

 Java Array – Declare, Create & Initialize An Array In Java

 Java Array – How To Print Elements Of An Array In Java?

 Java Operators – Arithmetic, Unary & Bitwise Operators In Java

 How To Handle The ArrayIndexOutOfBoundsException in Java?

 Array Data Types – int Array, Double array, Array of Strings Etc.

 How To Add Elements To An Array In Java

 Java Copy Array: How To Copy / Clone An Array In Java

 Remove/Delete An Element From An Array In Java

 How To Sort An Array In Java – Tutorial With Examples

 Reverse An Array In Java – 3 Methods With Examples

 Java String Array- Tutorial With Code Examples

 Java Logical Operators – OR, XOR, Not & More

 How To Pass / Return An Array In Java

 Array Of Objects In Java: How To Create, Initialize And Use

 MultiDimensional Arrays In Java (2d and 3d Arrays In Java)

 Java Generic Array – How To Simulate Generic Arrays In Java?

 Jagged Array In Java – Tutorial With Examples

 Arrays In Java 8 – Stream Class And ParallelSort Method

 Java Array Class Tutorial – [Link] Class with Examples

 The Top 10+ Java IDEs & Online Java Compilers (2025 Rankings)

 Java List – How To Create, Initialize & Use List In Java

 ListIterator Interface In Java With Examples

 Ternary Operator In Java – Tutorial With Examples

 Java Components: Java Platform, JDK, JRE, & Java Virtual Machine

 Java Basics: Java Syntax, Java Class and Core Java Concepts

 How To Download, Install And Configure Java


 Java List Methods – Sort List, Contains, List Add, List Remove

 Java Scanner Class Tutorial With Examples

 What Is Java Vector | Java Vector Class Tutorial With Examples

 Java String Methods Tutorial With Examples

 Java ArrayList – How To Declare, Initialize & Print An ArrayList

 Covert List To Array And Other Collections In Java

 Java ArrayList Conversions To Other Collections

 Binary Search Algorithm In Java – Implementation & Examples

 Doubly Linked List In Java – Implementation & Code Examples

 ArrayList Methods In Java – Tutorial With Example Programs

 Bubble Sort In Java – Java Sorting Algorithms & Code Examples

 Insertion Sort In Java – Insertion Sort Algorithm & Examples

 Selection Sort In Java – Selection Sort Algorithm & Examples

 Linked List In Java – Linked List Implementation & Java Examples

 Java Vs Python – Key Differences Between Java And Python

 Java String compareTo Method With Programming Examples

 Java String contains() Method Tutorial With Examples

 QuickSort In Java – Algorithm, Illustration & Implementation

 Merge Sort In Java – Program To Implement MergeSort

 Java Map Interface Tutorial With Implementation & Examples

 What Is A Java HashTable: HashTable Implementation & Example

 What Is A HashMap In Java?

 LinkedHashMap In Java – LinkedHashMap Example & Implementation

 TreeMap In Java – Tutorial With Java TreeMap Examples

 TreeSet In Java: Tutorial With Programming Examples

 Java String Split() Method – How To Split A String In Java

 Java Stack Tutorial: Stack Class Implementation With Examples

 Set Interface In Java: Java Set Tutorial With Examples

 Java Queue – Queue Methods, Queue Implementation With Examples

 Java JDBC Tutorial: What Is JDBC (Java Database Connectivity)

 Binary Search Tree In Java – Implementation & Code Examples


 Deque In Java – Deque Implementation And Examples

 How To Implement Dijkstra’s Algorithm In Java

 Java Graph Tutorial – How To Implement Graph Data Structure

 What Is A Heap Data Structure In Java

 Java Priority Queue Tutorial – Implementation & Examples

 Java String indexOf Method With Code Examples

 Java String length() Method With Examples

 Java String Replace(), ReplaceAll() & ReplaceFirst() Methods

 Java Reverse String: Tutorial With Programming Examples

 Java substring() Method – Tutorial With Examples

 How To Use Java toString Method?

 Java JDBC Connection Tutorial With Programming Example

 Concurrency In Java: Semaphore And Executor Framework

 Multithreading In Java – Tutorial With Examples

 What Is NullPointerException In Java & How To Avoid It

 Java Synchronized: What Is Thread Synchronization In Java

 Try, Catch, Finally And Throw In Java With Examples

 [Link]() – Thread Sleep() Method In Java With Examples

 Assertions In Java – Java Assert Tutorial With Code Examples

 What Is Garbage Collection In Java And How Does It Work

 Recursion In Java – Tutorial With Examples

 Java Class Vs Object – How To Use Class And Object In Java

 Java Variables And Their Types With Examples

 Java Integer And Java BigInteger Class With Examples

 Important Java Keywords List – Reserved Words In Java

 Types Of Classes In Java: Abstract, Concrete, Final, Static

 Java Double – Tutorial With Programming Examples

 Java Float Tutorial With Programming Examples

 JDBC DriverManager, JDBC PreparedStatement And Statement

 What Is Abstraction In Java – Learn With Examples

 Java Constructor – Class, Copy And Default Constructors


 Private, Abstract, Array And String Constructors In Java

 Overriding Predefined Methods In Java

 What Is Polymorphism In Java – Tutorial With Examples

 Java @override: Method Overriding And Runtime Polymorphism

 Encapsulation In Java: Complete Tutorial With Examples

 Java Enum: Java Enumeration Tutorial With Examples

 JDBC ResultSet: How To Use Java ResultSet To Retrieve Data

 Comparable And Comparator Interfaces In Java

 Java Composition – What Is Composition (Has-A) In Java

 What Is Inheritance In Java – Tutorial With Examples

 Types Of Inheritance In Java – Single Vs Multiple Inheritance

 Marker Interface In Java: Serializable And Cloneable

 Interface Enhancements In Java 8 – Java Functional Interface

 Design Patterns In Java: Singleton, Factory And Builder

 Introduction To JFC And GUI Programming In Java

 Java Regex Tutorial With Regular Expression Examples

 What Is Java Used For: 12 Real World Java Applications

 What Is JavaDoc And How To Use It To Generate Documentation

 Java Vs JavaScript: What Are The Important Differences

 What Is Java AWT (Abstract Window Toolkit)

 Java JDBC Transaction Management With Example

 JDBC Exception Handling – How To Handle SQL Exceptions

 Java If Statement Tutorial With Examples

 Methods In Java – Tutorial With Programming Examples

 HashSet In Java – Tutorial With Programming Examples

 Java For Loop Tutorial With Program Examples

 JDBC Batch Processing And Stored Procedure Tutorial

 Java Switch Case Statement With Programming Examples

 Java While Loop – Tutorial With Programming Examples

 How To Convert Java String To Int – Tutorial With Examples

 Java Do While Loop – Tutorial With Examples


 8 Methods To Convert An Integer To String In Java

 Java Break Statement – Tutorial With Examples

 Java Continue Statement – How To Use Continue In Java

 How To Convert Char To Int In Java [With Examples]

 4 Methods To Convert Char To String In Java

 Java Boolean – What Is A Boolean In Java (With Examples)

 3 Methods To Convert Double To Int In Java

 How To Use .equals Method In Java – Tutorial With Examples

 Methods To Convert Java String To Double [With Examples]

 Java char – Character Data Type In Java With Examples

 Java Timer – How To Set A Timer In Java With Examples

 Escape Characters OR Escape Sequences In Java

 Java Pass By Reference And Pass By Value With Examples

 TOP 15 Java Project Ideas for Beginners in 2025 (New LIST)

Get the Premium eBook

Download your copy now 👇

Our Bestselling eBook 'Software Testing Career package' Now Available FREE for Limited Period

DOWNLOAD NOW!

Leave a Comment

Comment

NameEmail

Software Testing Help

Communication Details

Main Office: A708, City Vista, Fountain Road, Kharadi, Pune, MH, 411014.

Email Us: info@[Link]

Facebook Linkedin X-twitter Youtube

Software Testing Tools

 Test Management Tools

 Web Application Testing Software


 Cross Browser Testing Tools

 Best ETL Testing Tools

 Mobile Testing Tools

 Regression Testing Tools

 Defect Tracking Tools

 GUI Testing Tools

 Requirements Management Tools

 ALL Testing Tools

Performance Testing Tools

 Performance Testing Tools

 Performance Testing Services

 Computer Stress Test Tools

 Cloud- Load Testing Service

 Performance Testing Guide

 Database Performance Tools

 Website Performance Testing Tools

 Application Performance Monitoring

Automation Testing Tools

 Unit Testing Tools

 API Testing Tools

 Best ETL Tools

 Open Source Testing Tools

 Functional Testing Tools

 Selenium Alternatives

 Accessibility Testing Tools

 Mobile Automation Tools

 Automation Testing Software

 Automation Testing Services

Data Tools

 Data Masking Tools

 Data Modeling Tools


 Data Analysis Tools

 Data Migration Software

 Data Integration Tools

 Data Mapping Tools

 Data Loss Prevention

 Test Data Management Tools

 Data Recovery Software

 Data Analytics Companies

 ALL Data Tools

Coding Software

 Best Code Editors

 Code Coverage Tools

 Low-Code Development Tools

 Static Code Analysis Tools

 Source Code Management Tools

 Version Control Software

 Code Review Tools

 Javascript Online Editors

 Code Review Tools

 Code Quality Tools

Security Testing Tools

 Penetration Testing Tools

 App Security Testing Tools

 Web Security Scanners

 Vulnerability Assessment

 Mobile App Security

 Malware Removal Tools

 Anti-Ransomware Tools

 Spyware Removal Tools

 Mobile Pen Testing Tools

 Pen Testing as a Service


 DAST Software

Testing Service Providers

 Managed Testing Services

 Mobile Testing Services

 Software Testing Services

 Performance Testing Services

 Penetration Testing Companies

 Cyber Security Companies

 QA Outsourcing Companies

 USA Testing Companies

 Website Testing Services

 Regression Testing Services

Software Development

 Custom Software Companies

 App Development Tools

 Software Development Tools

 Game Development Companies

 Software Companies USA

 SaaS Development Companies

 Android App Development

 DevOps Tools

 DevOps Service Providers

 App Development Companies

 Healthcare Dev Companies

Networking Tools

 Network Management

 Network Security Tools

 Network Scanning Tools

 Application Scanners

 Network Testing Tools

 Network Monitoring Tools


 Network Security Tools

 Server Monitoring Tools

 Network Mapping Software

 SIEM Tools

 System Monitoring Tools

 Infrastructure Monitoring Tools

Project Management Tools

 Project Management Software

 Project Management Apps

 Agile Project Management Tools

 Workflow Management Software

 Task Management Software

 Team Collaboration Tools

 JIRA Alternatives

 Project Planning Tools

 Team Management Software

Cloud Tools

 Cloud Monitoring Tools

 Crowdsourcing Platforms

 Cloud Management

 Crowdsourced Testing Companies

 Cloud Mobile Testing

 Cloud Computing Companies

 Cloud Managed Services

 Cloud Testing Tools

 Cloud Security Companies

 ALL Categories

Security Software

 Free Antivirus Software

 Cybersecurity Software

 Internet Security Tools


 External Vulnerability Scanner

 Website Malware Scanner

 Web Security Scanners

 Zero Trust Security

 Vulnerability Assessment

 ALL Security Tools

IT Management Tools

 Remote Desktop Software

 Configuration Management

 Incident Management Software

 Change Management Software

 IT Asset Management

 Managed IT Services

 ITSM Tools

 Remote Monitoring Software

 Remote Access Software

 Asset Discovery Tools

 Workload Automation Tools

 IT Automation Tools

About us | Contact us | Advertise


All articles are copyrighted and cannot be reproduced without permission. SoftwareTestingHelp® is
a registered trademark.
©SoftwareTestingHelp 2025 — Read our Copyright Policy | Privacy Policy | Terms | Cookie
Policy | Affiliate Disclaimer

Ask Anything..

You might also like