Distribuições do kit de desenvolvimento Java (JDK) ou distribuições do ambiente de execução Java (JRE) fornecem os recursos e processos necessários para executar aplicações Java em um sistema operacional subjacente. Esses elementos incluem todas as classes Java SE (Edição Padrão) necessárias e ambientes de execução de código. As distribuições JDK / JRE também incluem uma Máquina Virtual Java (JVM) que permite a portabilidade entre plataformas do Java e permite que o código compilado do Java seja menor em tamanho. Java é uma linguagem de programação popular, e o JDK / JRE pode ser considerado como uma camada de comunicação entre programas Java escritos e sistemas operacionais. Todas as distribuições do JDK derivam do OpenJDK, a implementação de código aberto do Java SE que é desenvolvida e mantida coletivamente pelos principais fornecedores neste espaço.
As equipes de desenvolvimento usam sua distribuição escolhida do JDK para obter acesso a classes (código pré-escrito com funcionalidade que pode ser chamada por meio de comandos abreviados), para escrever código Java e desenvolver aplicações, para verificar e validar seu código escrito, incluindo remediação de erros e segurança, e para executar seu código como uma aplicação. Para que as distribuições JDK ou JRE sejam consideradas compatíveis com Java SE, elas devem passar no conjunto de testes do kit de compatibilidade tecnológica (TCK). O TCK Java, também referido como JCK, é disponibilizado através do Acordo de Licença do TCK da Comunidade OpenJDK (OCTLA) para organizações que estão trabalhando e contribuindo para a Comunidade OpenJDK. Além disso, algumas distribuições (frequentemente referidas como distribuições "downstream") oferecem benefícios altamente diferenciados, como experiências de aplicação significativamente melhoradas e custos de infraestrutura reduzidos. Estes podem incluir desempenho aprimorado (melhor coleta de lixo, aquecimento mais rápido, etc.) e capacidades nativas da nuvem.
Para se qualificar para inclusão na categoria de Distribuições do Kit de Desenvolvimento Java (JDK), um produto deve:
Incluir uma Máquina Virtual Java (JVM)
Incluir a API Java SE (interface de programação de aplicações) - um conjunto de classes internas para construir aplicações Java
Fornecer os pacotes e ferramentas para desenvolver, testar e monitorar aplicações Java