OpenJDK è un modello di riferimento e open source, mentre Oracle JDK è un'implementazione di OpenJDK e non è open source. Oracle JDK è più stabile di OpenJDK.
OpenJDK è rilasciato con licenza GPL v2 mentre Oracle JDK è concesso in licenza con Oracle Binary Code License Agreement.
OpenJDK e Oracle JDK hanno quasi lo stesso codice, ma Oracle JDK ha più classi e alcuni bug corretti.
Quindi, se desideri sviluppare software aziendale/commerciale, ti suggerisco di scegliere Oracle JDK, poiché è completamente testato e stabile.
Ho riscontrato molti problemi con gli arresti anomali delle applicazioni utilizzando OpenJDK, che vengono risolti semplicemente passando a Oracle JDK
Le differenze tecniche sono una conseguenza dell'obiettivo di ciascuno (OpenJDK è pensato per essere l'implementazione di riferimento, aperta alla comunità, mentre Oracle è pensato per essere commerciale)
Entrambi hanno "quasi" lo stesso codice delle classi nell'API Java; ma il codice per la macchina virtuale stessa è in realtà diverso, e quando si tratta di librerie, OpenJDK tende a utilizzare librerie aperte mentre Oracle tende a utilizzare quelle chiuse; per esempio, la libreria dei font.