Уже 2 дня как вступили в силу изменения лицензионной политики Oracle на распространение сборок Java SE. В среде разработчиков-слоупоков начали носится кошмарные слухи.
Что произошло
В середине 2018 года Oralce объявил, что собирается изменить лицензионную политику. 16 апреля 2019 года изменение вступило в силу. Теперь все опубликованные после этой даты сборки Java SE можно использовать бесплатно только для личных нужд и с целью разработки. Для использования в коммерческих целях (в том числе для продакшена) надо оформить платную подписку у Oracle.
Что-а-а?
Oracle выстрелил себе в ногу и убивает Java? Нет, не убивает, нет не выстрелил. Давайте быстро разберемся, что это означает в практическом плане, без этих ваших GPL, BCL, WTF…
Зачем они это сделали?
Как известно, Oracle на самом деле собирает и публикует две версии JDK: Oracle JDK (aka Java SE, расположена на java.com) и Open JDK (расположена на openjdk.java.net). Достаточно взглянуть на этот слайд из их презентации:
Из неё становится понятен смысл всей затеи. Для коммерческой сборки поддержка длительная. Для бесплатной – короткая. Т.е. чтобы накатить патчи на бесплатную OpenJDK через полгода надо будет проапгрейдить версию. Oracle JDK будет выпускать патчи еще 5 лет после выпуска. Поэтому она платная.
Что насчет Java 8, 9, 10, 11...?
Это касается всех версий.
Это касается JRE?
Нигде отдельно не указывается лицензия на JRE. Считается, что раз JRE является подмножеством JDK, то и лицензионные ограничения такие же. Т.е. — да, это касается JRE.
Это мне надо теперь все снести на продакшене?!?!
Нет. Изменения касаются только новых выпусков (после 16 апреля). Для Java 8 SE первым выпуском с ограничениями стала Update 211. Все что было выпущено ранее, можно использовать дальше без ограничений.
А что теперь делать?
Ставить OpenJDK. Но OpenJDK не имеет официального виндового установщика (и автоматического апдейта), надо его распаковывать руками.
Если вам важен именно установщик, остается только пользоваться ранними релизами от Oracle (Update 202). А апдейты все равно придется отключить.
А от OpenJDK ничего не сломается?
Не должно (с). Отличия в функциональности минимальны и очень мало кого затрагивают. При этом Oracle планомерно уменьшает эти различия, вливая их в OpenJDK или удаляя совсем.
Автор: barbalion