Matthew Tyson
Contributing Writer

JVM, JDK, JRE: What’s the difference?

feature
Mar 11, 20192 mins

Three indispensable Java platform components, and how they work together in your Java applications.

Javaworld > JVM / JDK / JRE explainer series
Credit: IDG / Oracle / Vasabii / Getty Images

Developers new to Java often wonder what differentiates the Java Virtual Machine, the Java Development Kit, and the Java Runtime Environment. They’re also curious how these three Java platform components work together in Java applications. Finally, developers need to know how they will interact with each component.

Briefly:

  • The JVM is the Java platform component that executes your programs.
  • The JRE creates the JVM and ensures dependencies are available to your programs.
  • The JDK allows you to create Java programs that can be executed and run by the JVM and JRE.

As a developer, you’ll work with the JDK to write your applications and with the JVM to debug and optimize them, especially for performance. The JRE mostly runs in the background, but you may use it for application monitoring and memory configuration.

That’s the overview, but there’s a lot more to know about each platform component. We’ve pulled it all together in three quick tutorials.

 

Javaworld > JVM / JDK / JRE explainer series > Java Virtual Machine > debug + optimize Vasabii / Getty Images

PART 1: What is the Java Virtual Machine?

Technically, the JVM is a specification, describing the requirements for building a piece of software. From a developer’s perspective, it’s how we run our Java programs. You can choose from a variety of JVM implementations, and it’s important to know how to load and execute class files using the JVM you choose. You also should know how to check and tune JVM memory usage. Learn more …

 

Javaworld > JVM / JDK / JRE explainer series > Java Development Kit > write your code Vasabii / Getty Images

PART 2: What is the Java Development Kit?

The JDK is the package of tools you need to develop Java-based software. There isn’t just one JDK, though, and it’s important to know how to choose and download the correct JDK for the type of application you want to create. Learn more …

 

Javaworld > JVM / JDK / JRE explainer series > Java Runtime Environment > monitoring + configuration Vasabii / Getty Images

PART 3: What is the Java Runtime Environment?

The JRE is the runtime environment for Java, which means it’s a piece of software that is designed to run Java code. While the JRE mostly runs in the background, it’s important to know how to use JRE flags and switches to configure application memory. Learn more …

Matthew Tyson
Contributing Writer

Matthew Tyson is a contributing writer at InfoWorld. A seasoned technology journalist and expert in enterprise software development, Matthew has written about programming, programming languages, language frameworks, application platforms, development tools, databases, cryptography, information security, cloud computing, and emerging technologies such as blockchain and machine learning for more than 15 years. His work has appeared in leading publications including InfoWorld, CIO, CSO Online, and IBM developerWorks. Matthew also has had the privilege of interviewing many tech luminaries including Brendan Eich, Grady Booch, Guillermo Rauch, and Martin Hellman.

Matthew’s diverse background encompasses full-stack development (Java, JVM languages such as Kotlin, JavaScript, Python, .NET), front-end development (Angular, React, Vue, Svelte) and back-end development (Spring Boot, Node.js, Django), software architecture, and IT infrastructure at companies ranging from startups to Fortune 500 enterprises. He is a trusted authority in critical technology areas such as database design (SQL and NoSQL), AI-assisted coding, agentic AI, open-source initiatives, enterprise integration, and cloud platforms, providing insightful analysis and practical guidance rooted in real-world experience.

More from this author