Java: Oracle ou OpenJDK

Boa tarde. Na opinião de vocês, faz diferença baixar o Java 16 do site da Oracle ou do OpenJDK?

Respectivamente https://www.oracle.com/java/technologies/javase-jdk16-downloads.html e https://openjdk.java.net/projects/jdk/16/

Se há diferença, qual dos dois vocês recomendam?

Obrigado

Na minha (limitada) experiência, não faz tanta diferença, em especial se for para estudar. Em teoria, essas duas versões implementam a mesma especificação da linguagem Java, sendo portanto compatíveis (ou seja, um mesmo programa rodando em cada uma delas deve funcionar de forma similar, senão idêntica).

Já ouvi relatos de aplicações que não se davam bem com a OpenJDK, mas isso há muito tempo. Pode ser que em casos muito específicos existam diferenças (ex: algum recurso muito recente da linguagem ter comportamento diferente, ou algum bug). Do pouco que tenho usado da OpenJDK (no Ubuntu), não me lembro de nenhum problema recentemente.

Abraço.

1 curtida

Leitura relevante (as versões mencionadas são anteriores ao 16, mas a discussão é basicamente a mesma):

1 curtida

O que esta dando diferença mesmo e a quantidade de memoria usada entre a JVM HotSpot e OpenJ9.

OpenJ9 consome bem menos memoria e embora pra algumas coisas o Hotspot esteja um pouco mais rapido, vale a pena o OpenJ9.

Do mais está elas por elas, a propria Oracle esta usando o Open para compilar e distribuir e mantem uma boa parte da equipe open source no desenvolvimento e manutenção.

Faz um teste pra ver

1 curtida

Tem diferença e, na verdade, não é questão de opinião.

Os arquivos disponíveis no site da Oracle que vc mencionou estão sujeitos à Oracle Technology Network License Agreement for Oracle Java SE. Vc pode usar na sua máquina para desenvolvimento, estudo e testes, mas não poderia instalar num servidor de produção.

Uma coisa importante a se notar é que só tem binários para plataformas de 64 bits.

Além disso a Oracle oferece binários do OpenJDK, ou seja, sob a licença GPL, bem aqui: https://jdk.java.net/16/ (Também são binários de 64 bits).

Agora com relação a desempenho e compatibilidade, segundo a própria Oracle, Oracle JDK e OpenJDK são essencialmente iguais, veja o artigo: https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later. Ele diz que:

Oracle’s BCL-licensed JDK historically contained “commercial features” that were not available in OpenJDK builds. As promised, however, over the past year Oracle has contributed these features to the OpenJDK Community, including…

E o que eu recomendo é o mesmo que o @j-menezes: https://adoptopenjdk.net/

O AdoptOpenJDK faz parte da Eclipse Foundation e tem grandes empresas por trás.

E além de oferecer binários com diferentes JVMs como já citado, eles também estão disponíveis para mais plataformas, incluindo as de 32 bits.

Um aspecto que eu acho legal dos instaladores deles é que eles já configuram o Path no Windows pra vc. Eu acho isso legal porque eu sei que essa configuração confunde muito os iniciantes.

E se vc estiver no Ubuntu, eles tem um PPA oficial que te permite instalar e atualizar com facilidade.

3 curtidas

Alguns certificados não funcionavam corretamente no OpenJDK até 2 anos atrás quando estava trabalhando com validações de dados em terceiros. Hoje não sei te informar pois como disse faz 2 anos que não lido com tais certificados.

Obrigado a todos pelos esclarecimentos.