Java Architecture

Published: (February 3, 2026 at 11:33 PM EST)
3 min read
Source: Dev.to

Source: Dev.to

JDK

JDK (Java Development Kit) provides tools and libraries to develop Java applications, working with JRE and JVM. JRE (Java Runtime Environment) offers the libraries and JVM needed to run Java programs. JVM (Java Virtual Machine) executes the compiled Java bytecode on the system.

Java Source Code
(.java)


┌────────────────────────┐
│          JDK           │
│                        │
│  Development Tools     │
│  ┌──────────────────┐ │
│  │ javac → Compile  │ │
│  │ java  → Run      │ │
│  │ javadoc → Docs   │ │
│  │ jar   → Package  │ │
│  └─────────┬────────┘ │
│            │          │
│            ▼          │
│        ┌────────┐     │
│        │  JRE   │     │
│        │        │     │
│        │  JVM   │     │
│        │ + Libs │     │
│        └────────┘     │
└────────────────────────┘


OS / Hardware

JRE

The Java Runtime Environment (JRE) is a software package that Java programs require in order to run successfully. The JRE consists of the Java Virtual Machine (JVM), which executes Java bytecode using a combination of interpretation and Just-In-Time (JIT) compilation. The JRE is mainly responsible for running Java applications, while deployment tools are primarily provided in the Java Development Kit (JDK).

                    .class file (Bytecode)


┌─────────────────────────┐
│           JRE           │
│   (Java Runtime Env.)   │
│                         │
│  ┌───────────────┐      │
│  │      JVM      │      │
│  │───────────────│      │
│  │ Execution     │      │
│  │ Engine        │      │
│  │ ┌─────────┐   │      │
│  │ │Interpreter│ │      │
│  │ └─────────┘   │      │
│  │ ┌─────────┐   │      │
│  │ │   JIT    │ │      │
│  │ │ Compiler │ │      │
│  │ └─────────┘   │      │
│  └───────────────┘      │
│  ┌───────────────┐      │
│  │ Java Libraries│      │
│  │ (API Classes) │      │
│  └───────────────┘      │
└─────────────────────────┘


        Output

JVM

A JVM is a virtual machine that provides an execution environment for Java bytecode. The JVM acts as an intermediary layer between the Java code and the underlying hardware and operating system, enabling Java programs to run efficiently and reliably across various platforms and systems.

      Bytecode
   (.class)


┌───────────────────────┐
│          JVM          │
│                       │
│  ┌─────────────────┐ │
│  │  Class Loader   │ │
│  └────────┬────────┘ │
│           │          │
│           ▼          │
│  ┌─────────────────┐ │
│  │ Runtime Data    │ │
│  │    Areas        │ │
│  │ (Heap, Stack)  │ │
│  └────────┬────────┘ │
│           │          │
│           ▼          │
│  ┌─────────────────┐ │
│  │ Execution       │ │
│  │   Engine        │ │
│  │ (Interpreter + │ │
│  │   JIT + GC)    │ │
│  └────────┬────────┘ │
│           │          │
│           ▼          │
│        Output        │
└───────────────────────┘
Back to Blog

Related posts

Read more »

Garbage Collection in Depth (JAVA)

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink. Hide child comments as we...

Introduction to Java

!Cover image for Introduction to Javahttps://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s...

JDK

What is JDK? JDK is a complete software package used to develop Java applications. It contains tools to write, compile, debug, and run Java programs. When is J...

Switch on RUST

My path from Java to Rust: changing the technology stack Hello, my name is Garik, and today I want to share with you the story of how I decided to change the t...