Jump to section

What is a Java runtime environment (JRE)?

Copy URL

A Java™ runtime environment (JRE) is a set of components to create and run a Java application. A JRE is part of a Java development kit (JDK).

A JRE is made up of a Java virtual machine (JVM), Java class libraries, and the Java class loader. JDKs are used to develop Java software; JREs provide programming tools and deployment technologies; and JVMs execute Java programs.

Java is an object-oriented programming language created in 1995 that developers and programmers use to communicate instructions to a computer. Java remains one of the most popular programming languages today. 

In order for software to execute a program, it needs an environment to run in—usually an operating system (OS) like Linux, Unix, Microsoft Windows, or MacOS. With no other supporting environments, programs are constrained by the capabilities of the OS and it’s resources (such as memory and program files). 

A JRE acts as a kind of translator and facilitator between the Java program and the OS. 

Learn more about Java at Red Hat Developer

A Java runtime environment runs on top of the OS and provides additional Java-specific resources. It abstracts the OS and creates a consistent platform on which to run and deploy Java applications. The 3 components of the JRE work together within this environment to successfully run a Java application.

The Java class libraries contain collections of prewritten code that can be called when needed. The class loader connects class libraries with the JVM and loads them into the JVM while the program is running. The JVM then executes the code.

Because our Red Hat Runtimes product supports all kinds of Java development, including the Red Hat build of OpenJDK, and support for popular Java frameworks like Quarkus, Spring Boot, Eclipse Vert.x, and more.

Red Hat Runtimes provides a set of comprehensive frameworks, runtimes, and programming languages for cloud-native application development. Java developers can integrate their apps with capabilities included in Red Hat Runtimes—like single sign-on, distributed messaging, and in-memory caching.

Keep reading


Stateful vs stateless

Whether something is stateful or stateless depends on how long the state of interaction with it is being recorded and how that information needs to be stored.


What is Quarkus?

Quarkus is a Kubernetes-native Java stack made for Java virtual machines (JVMs) and native compilation, optimizing Java specifically for containers.


What is serverless?

Serverless is a cloud-native development model that allows developers to build and run applications without having to manage servers.

More about cloud-native applications


An enterprise application platform with a unified set of tested services for bringing apps to market on your choice of infrastructure.



Free training

Developing Cloud-Native Applications with Microservices Architectures