O que é o Java Runtime Environment (JRE)?

Pessoas trabalhando em um movimentado escritório em plano aberto

O que é JRE?

O Java Runtime Environment, ou JRE, é uma camada de software que é executada sobre o software do sistema operacional de um computador e fornece as bibliotecas de classes e outros recursos que um programa Java específico requer para ser executado.

O JRE é um dos três componentes inter-relacionados para desenvolver e executar programas Java. Os outros dois componentes são os seguintes:

  • O Java Development Kit, ou JDK, é um conjunto de ferramentas para desenvolver aplicações Java. Os desenvolvedores escolhem JDKs por versão Java e por pacote ou edição—Java Enterprise Edition (Java EE), Java Special Edition (Java SE) ou Java Mobile Edition (Java ME). Todo JDK sempre inclui um JRE compatível porque executar um programa Java faz parte do processo de desenvolvimento de um programa Java.

  • A máquina virtual Java, ou JVM, executa aplicações Java em tempo real. Cada JRE inclui um JRE padrão, mas os desenvolvedores podem escolher outro que atenda às necessidades específicas de recursos de suas aplicações.

O JRE combina o código Java criado usando o JDK com as bibliotecas necessárias para executá-lo em uma JVM e, em seguida, cria uma instância da JVM que executa o programa resultante. As JVMs estão disponíveis para múltiplos sistemas operacionais, e os programas criados com o JRE são executados em todos eles. Dessa forma, o Java Runtime Environment é o que permite que um programa Java seja executado em qualquer sistema operacional sem modificações.

Você pode baixar o JDK, incluindo um JRE compatível, da Oracle.

Como funciona o JRE?

O JDK e o JRE interagem entre si para criar um ambiente de tempo de execução sustentável que possibilita a execução perfeita de aplicações baseadas em Java em praticamente qualquer sistema operacional. Estes atributos compõem a arquitetura de tempo de execução do JRE:

ClassLoader

O Java ClassLoader carrega dinamicamente todas as classes necessárias para executar um programa Java. Como as classes Java só são carregadas na memória quando são necessárias, o JRE usa ClassLoaders para automatizar esse processo sob demanda.

Verificador de bytecode

O verificador de bytecode garante o formato e a precisão do código Java antes de passar para o interpretador. Se o código violar a integridade do sistema ou os direitos de acesso, a classe será considerada corrompida e não será carregada.

Intérprete

Após o bytecode ser carregado com sucesso, o interpretador Java cria uma instância da JVM que permite que o programa Java seja executado nativamente na máquina subjacente.

Em que consiste o JRE?

Além da máquina virtual Java, o JRE é composto por várias outras ferramentas e funcionalidades de software de suporte para você aproveitar ao máximo suas aplicações Java.

Soluções de implementação

Incluído como parte da instalação do JRE estão tecnologias de implementação como Java Web Start e plug-in Java, que simplificam a ativação de aplicações e proporcionam compatibilidade avançada com futuras atualizações Java.

Toolkits de desenvolvimento

O JRE também contém toolkits projetados para ajudar os desenvolvedores a melhorar sua interface do usuário. Alguns desses toolkits incluem:

  • Java 2D: uma interface de programação de aplicativos (API) usada para desenhar gráficos bidimensionais na linguagem Java. Os desenvolvedores podem criar interfaces de usuário avançadas, efeitos especiais, jogos e animações.

  • Abstract Window Toolkit (AWT): uma GUI (interface gráfica do usuário) usada para criar objetos, botões, barras de rolagem e janelas.

  • Swing: outra GUI leve que utiliza um rico conjunto de widgets para oferecer personalizações flexíveis.

Bibliotecas de integração

O Java Runtime Environment fornece diversas bibliotecas de integração para auxiliar os desenvolvedores na criação de conexões de dados perfeitas entre suas aplicações e serviços. Algumas dessas bibliotecas incluem:

  • Java IDL (CORBA): utiliza a Common Object Request Architecture para compatibilidade com objetos distribuídos escritos na linguagem de programação Java.

  • API Java Database Connectivity (JDBC): fornece ferramentas para que os desenvolvedores escrevam aplicação com acesso a bancos de dados de relacionamento remotos, arquivos simples e planilha.

  • Java Naming and Directory Interface (JNDI): uma interface de programação e serviço de diretório que ajuda os clientes a criar aplicações portáteis que podem buscar informações de bancos de dados usando convenções de nomenclatura.

Bibliotecas de linguagem e utilitários

O JRE inclui o java.lang. e java.util. pacotes que são fundamentais para o projeto de aplicações Java, controle de versão, gerenciamento e monitoramento de pacotes. Alguns desses pacotes incluem:

  • Collections Framework: uma arquitetura unificada composta por uma coleção de interfaces projetadas para melhorar o armazenamento e o processamento de dados de aplicações.

  • Utilitários simultâneos: um pacote de framework poderoso com utilitários de thread de alto desempenho.

  • API de preferências: uma API persistente leve e entre plataformas que permite que vários usuários no mesmo computador definam seu próprio grupo de preferências de {aplicação}.

  • Registro: um pacote que produz relatórios de registro, como falhas de segurança, erros de configuração e problemas de desempenho, para análise adicional.

  • Java Archive (JAR): um formato de arquivo independente de plataforma que permite que vários arquivos sejam agrupados no formato JAR, melhorando consideravelmente a velocidade do download e reduzindo o tamanho do arquivo.