Devido à recente atualização da política do Oracle Java SE Support Roadmap (final de US $ atualizações gratuitas da Oracle após março de 2019 em particular), tenho procurado alternativas ao Oracle Java. Descobri que o OpenJDK é uma alternativa de código aberto. E eu encontrei o AdoptOpenJDK , agora conhecido como Adoptium, que é um binário pré - construído . É quebra-cabeças.
Qual é a diferença entre o OpenJDK e o Adoptium / AdoptOpenJDK?
Respostas:
Em resumo:
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 :
Fornecedores e comparação de OpenJDK
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)
fonte
Atualização: AdoptOpenJDK mudou seu nome para Adoptium , como parte de sua mudança para a Eclipse Foundation .
OpenJDK code código-fonte
Adoptium / AdoptOpenJDK ➙ cria
O primeiro fornece código fonte , o outro fornece compilações desse código fonte.
Vários fornecedores de Java e OpenJDK
O Adoptium da Eclipse Foundation , anteriormente conhecido como AdoptOpenJDK , é apenas um dos vários fornecedores que distribuem implementações da plataforma Java. Esses incluem:
Consulte este meu fluxograma para ajudar a guiá-lo na escolha de um fornecedor para uma implementação da plataforma Java. Clique / toque para ampliar.
Outro recurso: essa matriz de comparação da Azul Systems é útil e parece verdadeira e justa para mim.
Aqui está uma lista de considerações e motivações a serem consideradas na escolha de um fornecedor e implementação.
Alguns fornecedores oferecem uma escolha de tecnologias JIT .
Para entender mais sobre esse ecossistema Java, leia Java Is Still Free
fonte