Najlepsza odpowiedź
W innej odpowiedzi omówiono już JDK vs JRE.
Główna różnica polega na tym, że OpenJDK jest open source i darmowy, podczas gdy Oracle JDK buduje się na dodatek i ma kilka zastrzeżonych komponentów.
Chciałbym dodać, że: nieraz zaczynałam z jakiś system Linux z OpenJDK, robiąc trochę rzeczy w Javie. Potem dostałem jakiś dziwny wewnętrzny błąd C ++ lub niezgodność ssl lub cokolwiek innego. W każdym przypadku, gdy tylko przełączyłem się na Oracle JDK, problem zniknął.
Naprawdę chciałbym pracować tylko z OpenJDK, obsługując otwarte oprogramowanie, ale smutna prawda jest taka, że w praktyce zastrzeżony po prostu działa lepiej.
Odpowiedź
Istnieje Oracle JDK i Open JDK.
JDK jest używany do tworzenia i uruchamiania programów [mend to run on Java VM]
JRE jest podrzędną częścią JDK i jest dostarczane niezależnie. Służy do wykonywania programów utworzonych przy użyciu kompilatora JDK [obecnie Eclipse i inne IDE posiadające własne kompilatory]
Oracle JDK jest tworzony na bazie kodu OpenJDK z kilkoma dodatkami, takimi jak wtyczki do przeglądarek, biblioteka multimediów (Oracle nie ma licencji na redystrybucję ich jako open source) i Java FX (teraz Java FX jest częścią OpenJDK).
Najważniejsze jest to, że maszyna wirtualna Oracle JDK jest lepiej dostrojona pod kątem wydajności w porównaniu z OpenJDK.
Możesz myśleć o OpenJDK jako dowód koncepcji dla specyfikacji Java SE.