Avatar ·

Qual é a diferença entre Oracle JDK e OpenJDK para um desenvolvedor Java?

Olá a todos! Sou um desenvolvedor Java iniciante e fiquei confuso. Quando instalo Java no meu computador (Windows 10), vejo duas opções: Oracle JDK e OpenJDK. Normalmente baixo do site oficial da Oracle, mas recentemente no trabalho me disseram para usar OpenJDK.

Tentei escrever um programa simples em Java 11 em ambos os JDKs — parece funcionar da mesma forma:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Mas notei que, ao compilar, o Oracle JDK exibe algum aviso, enquanto o OpenJDK não. Também ouvi dizer que o Oracle JDK agora é pago para uso comercial. Isso é verdade? Ou isso se aplica apenas a versões antigas?

Por favor, me esclareçam:

  • Qual é a diferença real entre eles?
  • Qual JDK é melhor escolher para aprendizado e para produção?
  • O código escrito no OpenJDK pode rodar no Oracle JDK e vice-versa?
  • Se