* [Topics](/en/topics "Topics")
* [Application development and delivery](/en/topics/application-modernization "Application development and delivery")
* What is a Java runtime environment (JRE)?
What is a Java runtime environment (JRE)?
=========================================
Published  April 22, 2020•*1*-minute read
Copy URL
Jump to section
---------------
OverviewA brief historyWhy use a JRE??How does a JRE work?Why Red Hat?
Overview
--------
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.
A brief history of Java
-----------------------
Java is an object-oriented programming language created in 1995 that [developers](/en/technologies/linux-platforms/enterprise-linux/red-hat-enterprise-linux-for-developers) and programmers use to communicate instructions to a computer. Java remains one of the most popular programming languages today.
Learn more about Java at Red Hat Developer
Red Hat resources
-----------------
[Keep reading](/en/resources "Keep reading")
Why use a Java runtime environment?
-----------------------------------
In order for software to execute a program, it needs an environment to run in—usually an operating system (OS) like [Linux](/en/topics/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.
How does a Java runtime environment work?
-----------------------------------------
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.
Why Red Hat?
------------
Because our [Red Hat Runtimes](/en/products/runtimes) product supports all kinds of Java development, including the Red Hat build of [OpenJDK](/en/resources/build-of-openjdk-datasheet), and support for popular Java frameworks like [Quarkus](/en/topics/cloud-native-apps/what-is-quarkus), Spring Boot, Eclipse Vert.x, and more.
Red Hat Runtimes provides a set of comprehensive frameworks, runtimes, and programming languages for [cloud-native](/en/topics/cloud-native-apps) 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.
Product
Cloud-native application development with Red Hat OpenShift
-----------------------------------------------------------
Red Hat OpenShift provides a trusted platform for cloud-native application development, so you can deliver new features that serve customer needs.
[Learn more about this product](/en/technologies/cloud-computing/openshift/cloud-native "Cloud-native application development with Red Hat OpenShift")
All Red Hat product trials
--------------------------
Our no-cost product trials help you gain hands-on experience, prepare for a certification, or assess if a product is right for your organization.
[Keep reading](/en/products/trials "All Red Hat product trials")
Keep reading
------------
### What is serverless?
Serverless is a cloud-native development model that allows developers to build and run applications without having to manage servers.
[Read the article](/en/topics/cloud-native-apps/what-is-serverless "article | what is serverless?")
### Stateful vs stateless applications
The difference between stateful and stateless applications is that stateful applications save past and present information while stateless applications don’t.
[Read the article](/en/topics/cloud-native-apps/stateful-vs-stateless "article | Stateful vs stateless applications")
### What is application migration?
Application migration is a process that can improve workloads by moving an application from one environment to another.
[Read the article](/en/topics/cloud-native-apps/application-migration "article | what is application migration")
Application development and delivery resources
----------------------------------------------
### Related content
* Blog post
  [Accelerating 5G with Red Hat's autonomous continuous testing framework](/en/blog/accelerating-5g-red-hats-autonomous-continuous-testing-framework)
* Blog post
  [Accelerate issue resolution with a Dedicated Operations Technical Account Manager](/en/blog/accelerate-issue-resolution-dedicated-operations-technical-account-manager)
* Blog post
  [6 ways to develop talent with Red Hat and maximize your subscriptions](/en/blog/6-ways-develop-talent-red-hat-and-maximize-your-subscriptions)
* Blog post
  [The next evolution of Red Hat’s Developer options](/en/blog/next-evolution-red-hats-developer-options)
### Related articles
* [What is CI/CD?](/en/topics/devops/what-is-ci-cd)
* [What is application lifecycle management (ALM)?](/en/topics/devops/what-is-application-lifecycle-management-alm)
* [What is Istio?](/en/topics/microservices/what-is-istio)
* [What is serverless?](/en/topics/cloud-native-apps/what-is-serverless)
* [What is a CI/CD pipeline?](/en/topics/devops/what-cicd-pipeline)
* [Stateful vs stateless applications](/en/topics/cloud-native-apps/stateful-vs-stateless)
* [What is application migration?](/en/topics/cloud-native-apps/application-migration)
* [What is application integration?](/en/topics/cloud-native-apps/application-integration)
* [Shift left vs. shift right](/en/topics/devops/shift-left-vs-shift-right)
* [Red Hat OpenShift for developers](/en/technologies/cloud-computing/openshift/developers)
* [Red Hat OpenShift for platform engineers](/en/technologies/cloud-computing/openshift/platform-engineer)
* [Why choose Red Hat for a DevOps Platform?](/en/topics/devops/why-choose-red-hat-for-devops)
* [What is DevSecOps?](/en/topics/devops/what-is-devsecops)
* [What is an application development platform?](/en/topics/cloud-native-apps/what-app-dev-platform)
* [Security in the software development lifecycle](/en/topics/security/software-development-lifecycle-security)
* [What are cloud applications?](/en/topics/cloud-native-apps/what-are-cloud-applications)
* [What is agile methodology?](/en/topics/devops/what-is-agile-methodology)
* [How to deploy Red Hat OpenShift](/en/technologies/cloud-computing/openshift/deploy-red-hat-openshift)
* [Kubernetes-native Java development with Quarkus](/en/technologies/cloud-computing/openshift/quarkus)
* [What is deployment automation?](/en/topics/automation/what-is-deployment-automation)
* [What is an SDK?](/en/topics/cloud-native-apps/what-is-SDK)
* [Why choose the Red Hat build of Quarkus?](/en/topics/cloud-native-apps/why-choose-red-hat-quarkus)
* [What is an application architecture?](/en/topics/cloud-native-apps/what-is-an-application-architecture)
* [What is Quarkus?](/en/topics/cloud-native-apps/what-is-quarkus)
* [What are Java frameworks?](/en/topics/cloud-native-apps/what-is-a-Java-framework)
* [What is an IDE?](/en/topics/platform-engineering/what-is-ide)
* [What is blue green deployment?](/en/topics/devops/what-is-blue-green-deployment)
[More about this topic](/en/topics/application-modernization "More about this topic")