Mejor respuesta
Otra respuesta ya analiza JDK vs JRE.
La principal diferencia es que OpenJDK es de código abierto y de uso gratuito, mientras que Oracle JDK se basa en eso y tiene algunos componentes patentados.
El punto que me gustaría agregar es: más de una vez he comenzado con algún sistema Linux que ejecuta OpenJDK, haciendo algunas cosas de Java. Luego obtuve un extraño error interno de C ++ o alguna incompatibilidad ssl o lo que sea. Y en todos los casos, tan pronto como cambié a Oracle JDK, el problema desapareció.
Realmente me gustaría trabajar solo con OpenJDK, admitiendo código abierto, pero la triste verdad es que en la práctica el propietario el software simplemente funciona mejor.
Respuesta
Existe Oracle JDK y Open JDK.
JDK se usa para crear y ejecutar programas [reparar para ejecutar en Java VM]
JRE es una parte de JDK y se envía de forma independiente. Se utiliza para ejecutar los programas creados con el compilador JDK [ahora un eclipse y otros IDE que tienen sus propios compiladores]
Oracle JDK se crea sobre la base de código OpenJDK con algunas adiciones como complementos del navegador, biblioteca de medios (Oracle no tiene licencia para redistribuirlos como código abierto) y Java FX (ahora Java FX es parte de OpenJDK).
El más importante es que la máquina virtual Oracle JDK tiene un mejor rendimiento en comparación con OpenJDK.
Puede pensar en OpenJDK como prueba de concepto para las especificaciones de Java SE.