Técnicamente, ¿cuál es la principal diferencia entre Oracle JDK y OpenJDK?

He estado usando OpenJDK por años, inicialmente para proyectos pequeños donde no tiene problemas. Pero desde que empecé a jugar con juguetes grandes, comencé a notar errores fatales aleatorios / desconocidos y lockings (con códecs H.264, etc.), y fue una pesadilla hasta entonces tener problemas de fallas del sistema + errores fatales causado por OpenJDK.

Después de estar completamente frustrado y cansado con OpenJDK, finalmente decidí cambiarme a Oracle JDK 7. Desde entonces mis errores / fallas fatales desaparecieron. Todavía estoy haciendo un seguimiento para ver si ocurre, pero nunca tuve esos lockings del sistema todavía.

Ahora me pregunto, si OpenJDK es solo un problema de licencia, ¿por qué la estabilidad es imposible?

¿Por qué OpenJDK mantiene los virus vivos, dentro de sus versiones estables, pero afirmando que es un clon de Oracle JDK (que no es en realidad), entonces qué es lo que realmente separa técnicamente a OpenJDK de Oracle JDK? (¿solo la disponibilidad de características rápidas o se enfoca en la estabilidad / confiabilidad?)

Las diferencias técnicas son una consecuencia del objective de cada una (OpenJDK pretende ser la implementación de referencia, abierta a la comunidad, mientras que Oracle está destinada a ser comercial)

Ambos tienen “casi” el mismo código de las clases en la API de Java; pero el código para la máquina virtual en sí es realmente diferente, y cuando se trata de bibliotecas, OpenJDK tiende a usar bibliotecas abiertas mientras que Oracle tiende a usar las cerradas; por ejemplo, la biblioteca de fonts .

OpenJDK es un modelo de referencia y de código abierto, mientras que Oracle JDK es una implementación de OpenJDK y no es de código abierto. Oracle JDK es más estable que OpenJDK.

OpenJDK se lanzó bajo la licencia GPL v2, en la que Oracle JDK tiene licencia bajo el Acuerdo de Licencia del Código Binario de Oracle.

OpenJDK y Oracle JDK tienen casi el mismo código, pero Oracle JDK tiene más clases y algunos errores corregidos.

Entonces, si desea desarrollar software empresarial / comercial, le sugiero que elija Oracle JDK, ya que está completamente probado y es estable.

He enfrentado muchos problemas con lockings de aplicaciones usando OpenJDK, que se solucionan simplemente al cambiar a Oracle JDK