Технически в чем основное различие между Oracle JDK и OpenJDK? [дубликат]


этот вопрос уже есть ответ здесь:

Я использую OpenJDK для возрастов, первоначально для небольших проектов, где у него нет проблем. Но так как я начал играть с ним для больших игрушек, я начал замечать случайные / неизвестные фатальные ошибки и сбои (с Кодеки H. 264 и др.), и это был кошмар до тех пор, чтобы получить поездку системного сбоя+фатальные ошибки, вызванные OpenJDK.

после того, как я полностью разочаровался и устал от OpenJDK, я, наконец, решил переключиться на Oracle JDK 7. С тех пор мои фатальные ошибки/сбои исчезли. Я все еще делаю трассировку, чтобы увидеть, происходит ли это, но я еще не получил эти системные сбои.

теперь мне интересно, если OpenJDK-это только проблема с лицензией, почему стабильность невозможна это?

Почему OpenJDK поддерживает ошибки в своих стабильных выпусках, но утверждает, что его клон Oracle JDK (что на самом деле не так), то что действительно технически отделяет OpenJDK от Oracle JDK? (только наличие быстрых функций? Или сосредоточены на стабильности/надежности?)

2 111

2 ответа:

технические различия являются следствием цели каждого из них (OpenJDK должен быть эталонной реализацией, открытой для сообщества, в то время как Oracle должен быть коммерческим)

Они оба имеют "почти" один и тот же код классов в Java API; но код для самой виртуальной машины на самом деле отличается, и когда дело доходит до библиотек, OpenJDK имеет тенденцию использовать открытые библиотеки, в то время как Oracle имеет тенденцию использовать закрытые; например,шрифт библиотека.

OpenJDK является эталонной моделью и открытым исходным кодом, в то время как Oracle JDK является реализацией OpenJDK и не является открытым исходным кодом. Oracle JDK является более стабильным, чем OpenJDK.

OpenJDK выпущен под лицензией GPL v2, где Oracle JDK лицензируется в соответствии с Лицензионным соглашением Oracle Binary Code.

OpenJDK и Oracle JDK имеют почти одинаковый код, но Oracle JDK имеет больше классов и исправлены некоторые ошибки.

Так что если вы хотите развивать предприятия/коммерческой программное обеспечение я бы предложил перейти на Oracle JDK, так как оно тщательно протестировано и стабильно.

Я столкнулся с большим количеством проблем с сбоями приложений с помощью OpenJDK, которые исправляются только путем переключения на Oracle JDK