Článek přečtěte do 3 min.

Java se v posledních šesti letech vyvíjela rychleji než kdykoli jindy ve své 30leté historii. Za tímto zrychleným vývojem stojí šestiměsíční kadence vydávání verzí Javy společností Oracle. Až donedávna byl vývoj funkcí určujícím faktorem načasování vydávání nových verzí Javy, což vytvářelo nepravidelný a pomalejší harmonogram.

Důsledkem této rychlejší rychlosti vydávání verzí je, že není praktické nabízet prodlouženou údržbu a podporu pro všechny verze. To vedlo společnost Oracle k přijetí strategie dlouhodobé podpory (LTS). Naštěstí ji přijaly všechny distribuce OpenJDK, takže při výběru běhového prostředí Java je o jeden faktor méně.

Společnost Oracle však také učinila strategická rozhodnutí o tom, jak bude licencovat svůj JDK, což vedlo k problémům při zvažování, jakou verzi Javy použít.

Od verze JDK 21 poskytuje společnost Oracle svůj JDK pod licencí No-Fee Terms and Conditions (NFTC). Ta uživateli uděluje licenci k používání Oracle JDK „…pro účely vývoje, testování, prototypování a demonstrace aplikací a spouštění programu pro vaši osobní potřebu nebo interní obchodní operace .“ Ve většině situací to znamená, že můžete používat Oracle JDK bez nutnosti zakoupení předplatného Java SE (odtud název licence „bez poplatku“).

Mnoho uživatelů potěší, že mohou i nadále používat Oracle JDK s nezbytnými bezpečnostními aktualizacemi a opravami chyb bez dalších nákladů. Problém s výběrem běhového prostředí Java je vyřešen. Nebo ne?

Vyřešil Oracle výběr běhového prostředí Java?

Organizace by si měly uvědomit, že licence NFTC neplatí po celou dobu platnosti každé verze JDK. Licence NFTC platí pouze jeden rok po vydání další verze LTS. V tomto okamžiku se licence vrátí k licenční smlouvě Oracle Technology Network, která neposkytuje bezplatné užívání pro interní obchodní aplikace. Jakmile tato změna vstoupí v platnost, všechny následné aktualizace budou pro většinu komerčních případů použití vyžadovat předplatné Java SE. Společnost Oracle stanovuje cenu předplatného Java SE na základě metriky zaměstnanců, včetně zaměstnanců na částečný úvazek a smluvních partnerů, což může být neúměrně drahé.

Jedním zřejmým řešením je upgrade Oracle JDK na další verzi LTS, která je stále kryta licencí NFTC.

To může znít přímočaře, ale je to opravdu tak?

Od verze JDK 21 uběhly mezi vydáními LTS pouze dva roky. Takže každé dva roky budete muset upgradovat verzi Javy.

Platforma Java si zachovala vynikající zpětnou kompatibilitu, ale neexistuje žádná záruka, že to bude fungovat 100% času. Přidání nových funkcí někdy (i když zřídka) ovlivňuje, zda aplikace může běžet beze změn. Od verze JDK 9 však nové verze Javy nejen přidaly nové funkce, ale často odstranily staré, málo používané funkce. To má pro projekt OpenJDK dvě výhody: snížení potenciálního počtu bezpečnostních zranitelností a odpovídající snížení režijních nákladů na údržbu celé platformy Java (s 7,5 miliony řádků kódu se jedná o významný úkol).

Během 30leté historie Javy byly vyvinuty tisíce aplikací pro koncové uživatele a vývojáři mohli volně využívat všechny funkce dostupné v jejich vydání. Nemůžete předpokládat, že aplikace, která funguje na jedné verzi LTS, bude bez problémů fungovat i na další.

Co to znamená, pokud používáte Oracle JDK 21?
Pokud používáte Oracle JDK 21 a neplatíte licenční poplatky, máte čas do září 2026 na upgrade na JDK 25 nebo na zahájení platby licenčních poplatků za Oracle. Jak je uvedeno výše, platba za zaměstnance – ať už používá Javu, nebo ne – může být extrémně nákladná.

Co se stalo, když Oracle odstranil Security Manager z Javy?

Jedním z nedávných příkladů je odstranění Správce zabezpečení z JDK 24. Může to znít, jako by se Java stala méně bezpečnou, ale Správce zabezpečení se v tomto kontextu vztahuje na model sandbox používaný pro spouštění appletů (které od JDK 10 nebyly ve skutečnosti podporovány). Někteří vývojáři aplikací však tuto funkci považovali za použitelnou v podnikových aplikacích na straně serveru, které nejsou applety, a řádně ji používali jako součást funkcionality aplikace.

Bez poskytnuté alternativní funkce vyžaduje migrace aplikace, která používá Security Manager, z LTS JDK 21 na LTS JDK 25 významné přepracování kódové základny.

Neměli byste předpokládat, že to bude poslední funkce, která bude z JDK odstraněna.

Jak můžete udržovat kritické Java aplikace aktuální?

Při přechodu z kritických podnikových aplikací na novou verzi platformy Java byste měli spustit celou sadu dostupných testů, abyste se ujistili, že nedojde k žádným rozdílům ve funkčnosti. To může být náročný úkol, který vyžaduje značný čas a zdroje. Opět platí, že je nutné jej opakovat každé dva roky, pokaždé, když je vydána nová verze LTS.

Předpoklad, že přechod na každou novou LTS verzi Javy je snadná možnost, se může z dlouhodobého hlediska ukázat jako mylný.

Jaké jsou problémy s aktualizací Javy každé dva roky?

Alternativním přístupem je pokračovat v používání osvědčené verze Javy, která byla použita k vývoji aplikace, ale aktualizovat ji čtvrtletně, aby byla zajištěna maximální úroveň zabezpečení a stability. To vše bez nutnosti případného překódování nebo rozsáhlého testování.

Azul Platform Core je cenově výhodná alternativní distribuce OpenJDK. Poskytuje všechny potřebné zpětně portované bezpečnostní opravy a opravy chyb. Cena se odvíjí od počtu používaných jader nebo desktopů, takže odráží skutečné množství využívané Javy. Pokud používáte Oracle Java 21, čas se krátí. Proč nezkusit Azul Platform Core?