Em resumo:
- O OpenJDK possui vários significados e pode se referir a:
- implementação gratuita e de código aberto da plataforma Java, Standard Edition (Java SE)
- repositório de código aberto - o código-fonte Java, também conhecido como projeto OpenJDK
- binários OpenJDK pré-criados mantidos pela Oracle
- binários pré-criados do OpenJDK mantidos pela comunidade OpenJDK
- AdoptOpenJDK - binários OpenJDK pré- criados mantidos pela comunidade ( licença de código aberto )
Explicação:
OpenJDK pré-construído (ou distribuição) - binários, criados a partir de http://hg.openjdk.java.net/ , fornecidos como um arquivo ou instalador, oferecidos para várias plataformas, com um possível contrato de suporte.
O OpenJDK, o repositório de origem (também chamado de projeto OpenJDK ) - é um repositório de código aberto baseado no Mercurial , hospedado em
http://hg.openjdk.java.net . O código-fonte Java. A grande maioria dos recursos Java (da VM e as bibliotecas principais ao compilador) são baseados apenas neste repositório de origem. A Oracle tem uma bifurcação alternativa disso.
O OpenJDK, a distribuição (veja a lista de provedores abaixo) - é gratuito como na cerveja e meio como na fala , mas você não pode ligar para a Oracle se tiver problemas com ela. Não há contrato de suporte. Além disso, a Oracle só lançará atualizações para qualquer versão do OpenJDK (a distribuição) se esse for o release Java mais recente, incluindo os lançamentos LTS (suporte a longo prazo). No dia em que a Oracle lança o OpenJDK (distribuição) versão 12.0, mesmo se houver um problema de segurança com o OpenJDK (distribuição) versão 11.0, a Oracle não lançará uma atualização para o 11.0. Mantido exclusivamente pela Oracle.
Alguns projetos do OpenJDK - como o OpenJDK 8 e o OpenJDK 11 - são mantidos pela comunidade OpenJDK e fornecem versões para algumas versões do OpenJDK para algumas plataformas. Os membros da comunidade assumiram a responsabilidade de liberar correções para vulnerabilidades de segurança nessas versões do OpenJDK.
AdoptOpenJDK, a distribuição é muito semelhante à distribuição OpenJDK da Oracle (na medida em que é gratuita e é uma compilação produzida pela compilação das fontes do repositório de fontes OpenJDK). O AdoptOpenJDK como uma entidade não fará o backport de patches, ou seja, não haverá uma 'fork / versão' do AdoptOpenJDK que seja materialmente diferente do upstream (exceto alguns patches de script de construção para itens como o suporte do Win32). Ou seja, se os membros da comunidade (Oracle ou outros, mas não o AdoptOpenJDK como entidade) corrigirem a segurança do backport para atualizações das versões do OpenJDK LTS, o AdoptOpenJDK fornecerá compilações para eles. Mantido pela comunidade OpenJDK.
OracleJDK - é mais uma distribuição. A partir do JDK12, não haverá versão gratuita do OracleJDK. A oferta de distribuição JDK da Oracle se destina ao suporte comercial. Você paga por isso, mas depois conta com o suporte da Oracle. Diferentemente da oferta OpenJDK da Oracle, o OracleJDK vem com suporte mais longo para versões LTS. Como desenvolvedor, você pode obter uma licença gratuita para uso pessoal / de desenvolvimento apenas desse JDK específico, mas isso é principalmente um problema, pois 'apenas o binário' é basicamente o mesmo que o binário do OpenJDK. Acho que isso significa que você pode baixar versões com patches de segurança de LTS JDKs nos sites da Oracle, desde que prometa não usá-las comercialmente.
Nota . Talvez seja melhor chamar as compilações do OpenJDK da Oracle como "compilações do Oracle OpenJDK".
Donald Smith, gerente de produtos Java da Oracle, escreve :
Idealmente, simplesmente nos referiríamos a todas as compilações do Oracle JDK como "Oracle JDK", sob a GPL ou a licença comercial, dependendo da sua situação. No entanto, por razões históricas, enquanto as pequenas diferenças remanescentes existirem, as consultaremos separadamente à medida que o OpenJDK da Oracle for construído e o Oracle JDK.
Fornecedores e comparação de OpenJDK
-------------------------------------------------- --------------------------------------
| Fornecedor Builds Grátis | Binário livre | Estendido | Comercial | Permissivo |
| | da fonte | Distribuições | Atualizações Suporte | Licença |
| ------------------------------------------------- ------------------------------------- |
| AdoptOpenJDK | Sim Sim Sim Não Sim
| Amazônia - Corretto | Sim Sim Sim Não Sim
| Azul Zulu | Não Sim Sim Sim Sim
| BellSoft Liberica | Não Sim Sim Sim Sim
| IBM Não Não Sim Sim Sim
| jClarity | Não Não Sim Sim Sim
| OpenJDK | Sim Sim Sim Não Sim
| JDK Oracle | Não Sim Não ** Sim Não
| Oracle OpenJDK | Sim Sim Não Não Sim
| ojdkbuild | Sim Sim Não Não Sim
| RedHat | Sim Sim Sim Sim Sim
| SapMachine | Sim Sim Sim Sim Sim
-------------------------------------------------- --------------------------------------
Compilações gratuitas a partir do código-fonte - o código-fonte da distribuição está disponível ao público e pode-se montar sua própria compilação
Distribuições binárias gratuitas - os binários de distribuição estão disponíveis publicamente para download e uso
Atualizações estendidas - aka LTS (suporte a longo prazo) - Atualizações públicas além do ciclo de vida do lançamento de 6 meses
Suporte comercial - alguns fornecedores oferecem atualizações estendidas e suporte ao cliente para clientes pagantes, por exemplo, Oracle JDK ( detalhes do suporte )
Licença permissiva - a licença de distribuição não é protetora, por exemplo, Apache 2.0
Qual distribuição Java devo usar?
Nos dias da Sun / Oracle, geralmente a Sun / Oracle produzia as distribuições proprietárias de JDK a jusante com base em fontes OpenJDK. Recentemente, a Oracle decidiu fazer suas próprias construções proprietárias apenas com o suporte comercial anexado. Eles publicam graciosamente as compilações do OpenJDK também em seu site https://jdk.java.net/ .
O que está acontecendo a partir do JDK 11 é a mudança da mentalidade de fornecedor único (Oracle) para a mentalidade em que você seleciona um provedor que fornece uma distribuição para o produto, nas condições que você preferir: plataformas criadas por eles, frequência e rapidez dos lançamentos , como o suporte é estruturado etc. Se você não confia em nenhum dos fornecedores existentes, pode criar o OpenJDK você mesmo.
Cada construção do OpenJDK geralmente é feita a partir do mesmo repositório original de origem (OpenJDK “the project”). No entanto, cada versão é única - $ gratuita ou comercial, com ou sem marca, pura ou empacotada (por exemplo, o BellSoft Liberica JDK oferece JavaFX empacotado, que foi removido das compilações Oracle a partir do JDK 11).
Se nenhum ambiente (por exemplo, Linux) e / ou requisito de licença definir distribuição específica e se você desejar a compilação JDK mais padrão , provavelmente a melhor opção é usar o OpenJDK da Oracle ou AdoptOpenJDK.
Informação adicional
Hora de olhar além do JDK da Oracle por Stephen Colebourne
Java Is Still Free pela comunidade Java Champions (publicado em 17 de setembro de 2018)
Java is Still Free 2.0.0 pela comunidade Java Champions (publicado em 3 de março de 2019)
Aleksey Shipilev sobre o JDK atualiza a entrevista por Opsian (publicado em 27 de junho de 2019)