Zmena licencie Java11 JDK a OpenJDK
Zaiste ste si všimli, že od jesene 2018 došlo k zásadným zmenám u Oracle Javy. Príchodom Java SE 11 sa zmenili sa licenčné podmienky používania. Došlo k zrušeniu samostatného JRE (Java Runtime Environment - tvz. Bežiaceho prostredie na ktorom bežali programy v Jave) či odstránenie JavaFX. Ono, samozrejme došlo aj k ďalším zmenám v oblasti vývoja už od Java9 (jeseň 2017), napr. Príchod modularity, vznik jmod, runtime imidž, a pod., Ale o tom niekedy inokedy.
V tomto článku si vyjasníme licenčné podmienky Oracle Java a prípadný prechod na OpenJDK, ktorá beží na slobodnejší licenciu GPLv2. Isteže stále môžete využívať pre učenie Oracle Java ale je vhodné si prečítať to zvýraznené Important changes in Oracle JDK 11 License, tzn. dôležité zmeny v licencii Java11 a zariadiť sa podľa toho. Originál anglickej verzia je v odkaze a tu si preložíme to najdôležitejšie do češtiny.
Licenčné podmienky
Licenčné práva (nové obmedzenia) sa teda primárne vzťahujú na vývojové prostredie (JDK) a tiež na naprogramované programy (aplikácie) vzniknuté nad týmto prostredím a využívajúce dané prostredie k svojmu behu.
Definícia
"Oracle" označuje spoločnosť Oracle America, Inc.
"Vy" a "Vaše" odkazuje za (a) na spoločnosť alebo
organizáciu (každá entita), ktorá pristupuje k
programom, ak bude užívanie programov menom takého subjektu; alebo
za (b) na jednotlivca, ktorý pristupuje k
programom, ak používanie programov nebude menom entity.
"Dodávatelia" označujú vaše zástupcu a dodávateľa (vrátane externých
dodávateľov).
"Programom (programy)" odkazuje na softvér Oracle poskytovaný
spoločnosťou Oracle podľa tejto dohody vr. všetkých
aktualizácií, opravy chýb a / alebo programovú dokumentáciou poskytovanú
spoločnosťou Oracle.
"Programová dokumentácia" sa vzťahuje k užívateľskej príručke k
licenčným informáciám pre Oracle Java SE pre príslušnú verziu dostupnú
na adrese https://www.oracle.com/...n/index.html
a ďalšiu dokumentáciu poskytovanú spoločnosťou Oracle s programami alebo
sprístupnená na lokalite https://docs.oracle.com/en/java.
"Oddelené podmienky" odkazujú na samostatné licenčné podmienky, ktoré sú
špecifikované v dokumentácii k programu, súbory readme alebo oznámenie a
ktoré sa vzťahujú na samostatne licencovanej technológie tretích
strán.
"Oddelené technológia licencované treťou stranou" označuje technológiu
tretej strany, ktorá je licencovaná podľa osobitných podmienok a nie na
základe podmienok tejto zmluvy.
"Aplikácia" sa týka aplikácií Java určených k behu na platforme Java
Platform, Standard Edition.
Licenčné práva a obmedzenia
Spoločnosť Oracle vám udeľuje nevýhradnú, neprenosnú, obmedzenú licenciu na interné použitie programov, s obmedzeniami v nej ustanovených a programové dokumentáciu, iba za účelom vývoja, testovania, prototypovania a predvádzanie vašej aplikácie (programu) a nie na iné účely. Môžete povoliť vašim dodávateľom (obchodným partnerom), aby používali programy za predpokladu, že konajú vaším menom, aby vykonávali licenčné práva udelené touto zmluvou a ďalej za predpokladu, že za takú potrebu odpovedáte a bude súlade s touto zmluvou. Budete mať s Vaším dodávateľom písomnú dohodu, ktorá prísne obmedzuje ich právo používať programy a inak chráni práva duševného vlastníctva spoločnosti Oracle v rovnakom rozsahu ako táto zmluva. Môžete kopírovať programy v rozsahu, ktorý je primerane potrebný na výkon licenčných práv poskytnutých v tejto zmluve.
Ďalej nesmiete
Pozn. Programy viď. definícia, ale jedná sa o Java11 a vyššiu SE JDK.
- používať tieto programy k akémukoľvek spracovanie údajov alebo akýmkoľvek komerčným, výrobným alebo interným podnikateľské účely, než je vývoj, testovanie, prototypovania a predvádzanie vašej aplikácie;
- odstrániť alebo upraviť akékoľvek označenie programu alebo akékoľvek oznámenie o vlastníckych právach spoločnosti Oracle alebo poskytovateľa licencie
- sprístupniť programy akýmkoľvek spôsobom akejkoľvek tretej strane (inej ako dodávateľom konajúcim vo vašom zastúpení, ako sú uvedené v tejto zmluve)
- previesť túto zmluvu alebo distribuovať, dať, alebo previesť programy alebo záujem na nich tretej osobe, s výnimkou prípadov výslovne povolených v tejto Zmluve pre dodávateľov (vyššie uvedené nebude vykladať ako obmedzenie práv, ktoré by ste inak mohli mať ohľadom samostatne licencovanej technológie tretích strán)
- vykonávať alebo povoliť reverzné inžinierstvo (ak to zákon nevyžaduje pre interoperabilitu), demontáž alebo dekompiláciu programov a
- vytvárať, upravovať alebo meniť správanie tried, rozhranie alebo čiastkových balíčkov, ktoré sú akýmkoľvek spôsobom označené ako "java", "javax", "sun", "oracle".
Programy môžu obsahovať zdrojový kód, ktorý nie je výslovne licencovaný v tejto zmluve na iné účely (napríklad licencovaný pod licenciou s otvoreným zdrojovým kódom), udeľuje sa výlučne na referenčné účely v súlade s podmienkami tejto zmluvy a nesmie byť zmenený.
Všetky práva, ktoré nie sú výslovne uvedené v tejto zmluve, sú vyhradené spoločnosťou Oracle. Pokiaľ chcete používať programy na iné účely, než aké sú výslovne povolené podľa tejto zmluvy, musíte získať od Oracle alebo predajcu Oracle platnú licenciu programu podľa osobitnej dohody, ktorá umožňuje takéto využitie. Beriete na vedomie, že programy nesmú byť určené na produkčnému použitia a / alebo spoločnosť Oracle nemusí vykonať sprístupnenie verziu programov k produkčnému použitie alebo iné účely; akýkoľvek vývoj alebo iná práca, ktorú vykonávate s programami, je na vaše riziko.
Vlastníctvo
Spoločnosť Oracle alebo jej poskytovatelia licencií si ponechávajú všetky vlastnícke právo a práva duševného vlastníctva k programom.
Poznámka k prekladu
Nejedná sa o kompletnú licenčné podmienky, ale iba stručný výťah toho, čo považujem za dôležité. Rovnako nejde o oficiálny preklad od Oracle, ale odo mňa, takže je možné, že podmienky nemusia byť úplne zhodné s vyjadrením českej pobočky Oracle. Iba som sa snažil preklad do jednoduchšie češtiny.
Cena licencie
Tu, na tejto stránke sú uvedené ceny za využívanie licencie Java SE z dielne Oracle. Licencie pre desktop vychádza na 2,5 $ / mesiac a server (vr. Cloudu) na 25 $ / mesiac / processor. Samozrejme sú dostupné aj množstevné zľavy.
Záver
Oracle Java JDK možno teda bez problémov zdarma použiť pre vývoj aplikácie, či jej prezentácie u klienta (zákazníka), ale nie pre jej fungovanie u klienta (zákazníka). Avšak som narazil aj na výklad, ktorý to popiera a to tak, že pre vývoj aplikácie, ktorá je zameraná na predaj, nemožno použiť Oracle JDK. Tento výklad sa mi však nezdá správny.
OpenJDK a jej implementácia
Alternatívou Oracle JDK je prechod k free Jave, tzv. OpenJDK, uvoľnenom pod licenciou GPL v2, ktorý má free JVM. Niektoré implementácia OpenJDK už majú Java11, niektoré idú stále na Java8. Samozrejme odporúčam opäť pre istotu skontrolovať licenčnú dohodu, technickú podporu, aktualizácie, a pod ..
- OpenJDK - Oracle
- OpenJDK - Zulu
- OpenJDK - AdoptOpenJDK
- OpenJDK - SapMachine
- OpenJDK - Ojdkbuild
- OpenJDK - Liberica
- OpenJDK - Amazon corretto
- OpenJDK - IBM
- OpenJDK - Red Hat
- asi OpenJDK - Graalvm
Budúcnosť Javy
Zaiste sa možno pýtate čo nám ekosystém Javy ďalej prinesie. Pridám tu pár obrázkov stiahnutých z rôznych blogov po internete, ktoré boli zverejnené. Avšak upozorňujem, že Oracle už párkrát vykonal drastické zmeny, takže to čo teraz platí nemusí platiť v roku 2022, 2025, 2030.
Tu je výhľad do roku 2020. Je zrejmé, že budú podporované Java7, 8, ale k balíčkom opráv sa nedostanete, ak nemáte zaplatenú technickú podporu od Oracle. Java 9, 10 nebude dostávať žiadne balíčky opráv. Java11 bude dostávať balíky opráv a označenie bude stále Java11. Balíčky opráv pre OpenJDK budú každého pol roka, ale označenie OpenJDK bude vyššia. (Tvz. Java11.0.3 = OpenJDK12.0.1, Java11.0.5 = OpenJDK13.0.1). Podľa zdrojov by API oboch, teda OracleJDK a OpenJDK, mala byť identická.
Z tohto obrázku možno vidieť do kedy budú podporované staršie verzie Javy (6, 7, . Ďalej možno pozorovať u Javy prechod na LTS (long term support) s tým, že každé 3 roky bude vydávaná nová Java LTS. Označenie 18.9 definuje 18 rok a 9 mesiac. Takže Java11 je vlastne Java18.9 LTS. Podpora Java LTS bude cca 8 - 9 rokov. Ďalej môžete vidieť, že OpenJDK bude vychádzať približne každého 1/2 roka.
Ako používať OpenJDK je ukázané v článku Nastavenie OpenJDK v Eclipse IDE.
Ak sa niekto domnieva, že nejaká informácia v článku nie je v poriadku, môžete sa aj s argumentáciou vyjadriť v komentároch pod článkom. Ak vaše argumentácia bude dávať zmysel, článok v závislosti na tom upravím. Nereaguje každý deň, skutočne na to nemám a nebudem mať čas, takže prosím počítajte s tým, že budem reagovať napr. Za týždeň, či dva.