IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Změna licence Java11 JDK a OpenJDK

Zajisté jste si všimli, že od podzimu 2018 došlo k zásadním změnám u Oracle Javy. Příchodem Java SE 11 se změnily se licenční podmínky používání. Došlo ke zrušení samostatného JRE (Java Runtime Environment - tvz. běžícího prostředí na kterém běžely programy v Javě ) či odstranění JavaFX. Ono, samozřejmě došlo i k dalším změnám v oblasti vývoje již od Java9 (podzim 2017), např. příchod modularity, vznik jmod, runtime image, apod., ale o tom někdy jindy.

V tomto článku si vyjasníme licenční podmínky Oracle Java a případný přechod na OpenJDK, která běží na svobodnější licenci GPLv2. Jistěže stále můžete využívat pro učení Oracle Java ale je vhodné si přečíst to zvýrazněné Important changes in Oracle JDK 11 License, tzn. důležité změny v licenci Java11 a zařídit se podle toho. Originál anglické verze je v odkazu a zde si přeložíme to nejdůležitější do češtiny.

Licenční podmínky

Licenční práva (nová omezení) se tedy primárně vztahují na vývojové prostředí (JDK) a také na naprogramované programy (aplikace) vzniklé nad tímto prostředím a využívající dané prostředí ke svému běhu.

Definice

"Oracle" označuje společnost Oracle America, Inc.
"Vy" a "Vaše" odkazuje za (a) na společnost nebo organizaci (každá entita), která přistupuje k programům, pokud bude užívání programů jménem takové entity; nebo za (b) na jednotlivce, jenž přistupuje k programům, pokud užívání programů nebude jménem entity.
"Dodavatelé" označují vaše zástupce a dodavatele (včetně externích dodavatelů).
"Programem (programy)" odkazuje na software Oracle poskytovaný společností Oracle podle této dohody vč. všech aktualizací, opravy chyb a/nebo programovou dokumentací poskytovanou společností Oracle.
"Programová dokumentace" se vztahuje k uživatelské příručce k licenčním informacím pro Oracle Java SE pro příslušnou verzi dostupnou na adrese https://www.oracle.com/…n/index.html a další dokumentaci poskytovanou společností Oracle s programy nebo přístupná na adrese https://docs.oracle.com/en/java.
"Oddělené podmínky" odkazují na samostatné licenční podmínky, které jsou specifikovány v dokumentaci k programu, soubory readme nebo oznámení a které se vztahují na samostatně licencované technologie třetích stran.
"Oddělené technologie licencované třetí stranou" označuje technologii třetí strany, která je licencována podle zvláštních podmínek a nikoli na základě podmínek této smlouvy.
"Aplikace" se týká aplikací Java určených k běhu na platformě Java Platform, Standard Edition.

Licenční práva a omezení

Společnost Oracle vám uděluje nevýhradní, nepřevoditelnou, omezenou licenci pro interní použití programů, s omezeními stanovených v této smlouvě a programové dokumentaci, pouze za účelem vývoje, testování, prototypování a předvádění vaší aplikace (programu) a nikoliv pro jiné účely. Můžete povolit vašim dodavatelům (obchodním partnerům), aby používali programy za předpokladu, že jednají vaším jménem, aby vykonávali licenční práva udělená touto smlouvou a dále za předpokladu, že za takovou potřebu odpovídáte a bude souladu s touto smlouvou. Budete mít s Vaším dodavatelem písemnou dohodu, která přísně omezuje jejich právo používat programy a jinak chrání práva duševního vlastnictví společnosti Oracle ve stejném rozsahu jako tato smlouva. Můžete kopírovat programy v rozsahu, který je přiměřeně nezbytný k výkonu licenčních práv poskytnutých v této smlouvě.

Dále nesmíte

Pozn. Programy viz. definice, ale jedná se o Java11 a vyšší SE JDK.

  • používat tyto programy k jakémukoli zpracování dat nebo jakýmkoli komerčním, výrobním nebo interním podnikatelským účelům, než je vývoj, testování, prototypování a předvádění vaší aplikace;
  • odstranit nebo upravit jakákoli označení programu nebo jakákoli oznámení o vlastnických právech společnosti Oracle nebo poskytovatele licence
  • zpřístupnit programy jakýmkoli způsobem jakékoli třetí straně (jiné než dodavatelům jednajícím ve vašem zastoupení, jak jsou uvedeny v této smlouvě)
  • převést tuto smlouvu nebo distribuovat, dát, nebo převést programy nebo zájem na nich třetí osobě, s výjimkou případů výslovně povolených v této Smlouvě pro dodavatele (výše uvedené nebude vykládáno jako omezení práv, která byste jinak mohli mít ohledně samostatně licencované technologie třetích stran)
  • provádět nebo povolit reverzní inženýrství (pokud to zákon nevyžaduje pro interoperabilitu), demontáž nebo dekompilaci programů a
  • vytvářet, upravovat nebo měnit chování tříd, rozhraní nebo dílčích balíčků, které jsou jakýmkoli způsobem označeny jako "java", "javax", "sun", "oracle".

Programy mohou obsahovat zdrojový kód, který není výslovně licencován v této smlouvě pro jiné účely (například licencovaný pod licencí s otevřeným zdrojovým kódem), je poskytován výhradně pro referenční účely v souladu s podmínkami této smlouvy a nesmí být změněn.

Všechna práva, která nejsou výslovně uvedena v této smlouvě, jsou vyhrazena společností Oracle. Pokud chcete používat programy k jiným účelům, než jaké jsou výslovně povoleny podle této smlouvy, musíte získat od Oracle nebo prodejce Oracle platnou licenci programu podle zvláštní dohody, která umožňuje takové využití. Berete na vědomí, že programy nesmějí být určeny k produkčnímu užití a/nebo společnost Oracle nemusí provést zpřístupnění verzi programů k produkčnímu užití nebo jiným účelům; jakýkoli vývoj nebo jiná práce, kterou provádíte s programy, je na vaše riziko.

Vlastnictví

Společnost Oracle nebo její poskytovatelé licencí si ponechávají veškeré vlastnické právo a práva duševního vlastnictví k programům.

Poznámka k překladu

Nejedná se o kompletní licenční podmínky, ale pouze stručný výtah toho, co považuji za důležité. Rovněž se nejedná o oficiální překlad od Oracle, ale ode mě, takže je možné, že podmínky nemusí být naprosto shodné s vyjádřením české pobočky Oracle. Pouze jsem se snažil překlad do jednodušší češtiny.

Cena licence

Zde, na této stránce jsou uvedeny ceny za využívání licence Java SE z dílny Oracle. Licence pro desktop vychází na 2,5$/ měsíc a server (vč. cloudu) na 25$/měsíc/pro­cessor. Samozřejmě jsou dostupné i množstevní slevy .

Závěr

Oracle Java JDK lze tedy bez problémů zdarma použít pro vývoj aplikace, či její prezentace u klienta (zákazníka), ale nikoliv pro její fungování u klienta (zákazníka). Nicméně jsem narazil i na výklad, jenž to popírá a to tak, že pro vývoj aplikace, která je zaměřena k prodeji, nelze použít Oracle JDK. Tento výklad se mi ovšem nezdá správný.

OpenJDK a její implementace

Alternativou Oracle JDK je přechod k free Javě, tzv. OpenJDK, uvolněném pod licencí GPL v2, jenž má free JVM. Některé implementace OpenJDK již mají Java11, některé jedou stále na Java8. Samozřejmě doporučuji opět pro jistotu zkontrolovat licenční ujednání, technickou podporu, aktualizace, apod..

Budoucnost Javy

Zajisté se možná ptáte co nám ekosystém Javy dále přinese. Přidám tu pár obrázků stažených z různých blogů po internetu, které byly zveřejněny. Nicméně upozorňuji, že Oracle již párkrát provedl drastické změny, takže to co nyní platí nemusí platit v roce 2022, 2025, 2030.

Krátkodobý výhled - Kompilace manuálně v Javě

Zde je výhled do roku 2020. Je patrno, že budou podporovány Java7, 8, ale k balíčkům oprav se nedostanete, pokud nemáte zaplacenou technickou podporu od Oracle. Java 9, 10 nebude dostávat žádné balíčky oprav. Java11 bude dostávat balíčky oprav a označení bude stále Java11. Balíčky oprav pro OpenJDK budou každého půl roku, ale označení OpenJDK bude vyšší. (tvz. Java11.0.3 = OpenJDK12.0.1 , Java11.0.5 = OpenJDK13.0.1). Podle zdrojů by API obou, tedy OracleJDK a OpenJDK, měla být identická.

Dlouhodobý výhled - Kompilace manuálně v Javě

Z tohoto obrázku lze vidět do kdy budou podporovány starší verze Javy (6, 7, 8 ). Dále lze pozorovat u Javy přechod na LTS (long term support) s tím, že každé 3 roky bude vydávána nová Java LTS. Označení 18.9 definuje 18 rok a 9 měsíc. Takže Java11 je vlastně Java18.9 LTS. Podpora Java LTS bude cca 8 - 9 let. Dále můžete vidět, že OpenJDK bude vycházet zhruba každého 1/2 roku.

Jak používat OpenJDK je ukázáno v článku Nastavení OpenJDK v Eclipse IDE.

Pokud se někdo domnívá, že nějaká informace v článku není v pořádku, můžete se i s argumentací vyjádřit v komentářích pod článkem. Pokud vaše argumentace bude dávat smysl, článek v závislosti na tom upravím. Nereaguji každý den, skutečně na to nemám a nebudu mít čas, takže prosím počítejte s tím, že budu reagovat např. za týden, či dva.


 

Všechny články v sekci
Kompilace manuálně v Javě
Článek pro vás napsal Robert Michalovič
Avatar
Uživatelské hodnocení:
2 hlasů
Programuji převážně v Javě SE,EE a trochu nativním C a CUDA. více viz.https://cz.linkedin.com/in/robert-michalovic
Aktivity