Javan päivitysopas: Siirtyminen uusimpiin LTS-versioihin

13. marraskuuta 2025
Paavo Pauklin

Java-päivitykset tuntuvat harvoin kiireellisiltä, ennen kuin kumppanin SDK, tietoturvakorjaus tai kehys pakottaa sinut siihen. Tässä oppaassa kerrotaan, milloin kannattaa siirtyä, miten riski pidetään pienenä ja mitä tiimiltäsi kannattaa kysyä, jotta päivitykset eivät enää tukkisi etenemissuunnitelmaa.

Miksi tällä on nyt merkitystä

Java toimitetaan kuuden kuukauden välein. Toimittajat nimeävät tietyt versiot pitkäaikaista tukea varten. Ekosysteemit mukautuvat näihin LTS-linjoihin, mikä tarkoittaa parempaa tietoturvasuojausta, sujuvampia SDK:ita ja helpompaa palkkaamista. Se myös estää tai vaikeuttaa tekoälyn käyttöönottoa, koska pilvipohjaiset tekoäly-SDK:t ja turvalliset suoratoistopinot vastaavat nykyisiä Java LTS -perusversioita. Paljon jäljessä pysyminen näyttää halvalta, kunnes se aiheuttaa julkaisun viivästymisen tai vaatimustenmukaisuuden toteamisen. Parannuskeino on tasainen päivitystapa, ei pelastushanke.

Johdon tarkistuslista ennen Java-päivitystä

  1. Tuki-ikkuna: Mikä Java-versio on käytössä ja kuka myyjä tukee sitä?
  2. Puitteiden sopivuus: Tukeeko pääkehyslinjamme tavoitetta Java
  3. Turvaverkot: Onko meillä liiketoimintatason testejä ja luotettava staging-ympäristö?
  4. Riippuvuudet: Ovatko rakennustyökalut, APM-agentit ja kumppanien SDK:t yhteensopivia kohteen kanssa?
  5. Käyttöönottosuunnitelma: Voimmeko julkaista vaiheittain ja mitata vaikutuksia nopeasti?

Jos jokin vastaus on epäselvä, korjaa se ensin. Se vähentää kustannuksia ja melua myöhemmin.

Valitse kohde itsevarmasti

Tavoittele nykyistä valmistajan LTS-versiota, ellei jokin selkeä este ole olemassa. Todista polku lyhyellä hiekkalaatikkoharjoituksella. Joskus JVM:n on siirryttävä ensin, joskus kehyksen. Päätä järjestys tosiasioiden, ei arvailujen, perusteella ja kirjoita se ylös. Pidä tiimi keskittyneenä muutamaan lyhyeen sykliin eikä yhteen suureen harppaukseen.

Laiva ilman draamaa

Suorita ensin pieni kokeilu. Julkaisu vaiheittain. Tarkkaile asiakaslähtöisiä mittareita ja mainosta vain, jos se on kunnossa. Kun tietokantaan tehdään muutoksia, käytä suunnitelmaa, joka mahdollistaa vanhan ja uuden koodin käyttämisen rinnakkain, kun tiedot siirretään turvallisesti. Suhtaudu "rollbackiin" realistisesti. Kun tiedot muuttuvat, siirtyminen turvalliseen korjaukseen on usein ainoa järkevä vaihtoehto.

Java tänään: missä olet version mukaan ( Viimeksi päivitetty: lokakuu 2025)

Miksi jätämme väliin historialliset julkaisut kuten 9, 10, 12 ja 13?

Koska Javan julkaisutahti oli puolivuosittainen, näiden väliversioiden käyttöikä oli lyhyt ja päivitykset loppuivat nopeasti. Todellisessa maailmassa tiimit vakioivat toimittajien pitkäaikaiset tukilinjat, koska niissä tietoturvakorjaukset, kumppanien SDK:t ja työkalut yhdistyvät. Tässä oppaassa keskitytään siis nykyisiin ja viimeisimpiin LTS-julkaisuihin, ja muita kuin LTS-julkaisuja käsitellään lyhyinä pysähdyspaikkoina matkalla LTS-julkaisuihin. 

Java 25 (LTS) - GA Syyskuu 2025
Paras oletusarvo uusille palveluille ja päivityksille. Saat pisimmän tukiputken ja laajimman ekosysteemin tuen. Useimmat suuret pinot joko tukevat jo 25:tä tai ovat lyhyitä polkuja siihen. Jos pysyt tässä, saat käyttöösi uusimmat APM-agentit, kontti-imaget ja kumppanien SDK:t sitä mukaa, kun ne muuttuvat.
Miksi sillä on merkitystä: vähemmän "JVM estää" -yllätyksiä, nopeammat kumppaniintegraatiot ja vähemmän uudelleentyöstämistä, kun kehykset ottavat käyttöön vain 25:n ominaisuuksia.

Java 21 (LTS) - GA Syyskuu 2023
Edelleen vahva tukikohta ja turvallinen pysähdyspaikka. 21 avaa virtuaaliset säikeet, joiden avulla monia säikeitä per pyyntö -palvelut skaalautuvat pienemmällä yleiskustannuksella, minkä vuoksi Spring Boot 3.2+ ja muut kehykset ottivat 21:n nopeasti käyttöön. Jotkin toimittajat alkavat merkitä "21+ recommended" uusiin SDK:hon ja APM-agentteihin.
Riski, jos pysähdyt tähän liian pitkään: yhä useammat kirjastot optimoivat ensin 25:lle, ja tuen päättymispäivä on aikaisempi, mikä supistaa suunnitteluikkunaa.

Java 17 (LTS) - GA Syyskuu 2021
Tuettu, mutta kitka kasvaa. Spring Framework 6 / Spring Boot 3.x, Micronaut 4, Quarkus 3 ja Jakarta EE 11vaativat kaikki Java 17+. Voit käyttää sitä, mutta 21+:n parannukset jäävät näkemättä, ja SDK:t, tietoturva-agentit ja build-lisäosat sisältävät enemmän "requires 21+" -merkintöjä.
Miksi sillä on merkitystä: käytät enemmän aikaa vanhojen lisäosaversioiden kiinnittämiseen, heikompien tietoturvan peruslinjojen hyväksymiseen ja kumppaneille selittämiseen, miksi heidän uusin SDK:nsa ei toimi.

Java 11 (LTS) - GA Syyskuu 2018
Nyt ikääntyy. Monet työkaluketjut olettavat uudempia bytecode-tasoja, uudempia TLS-oletuksia ja konttipohjakuvia, jotka kohdistuvat 17/21+. 11:n pitäminen tarkoittaa usein Spring Boot 2.x -linjojen jäädyttämistä ja nykyisten tietoturvapäivitysten ja suorituskykytyön menettämistä.
Miksi sillä on merkitystä: suurempi vaaratilanteiden riski, hitaammat julkaisut, nousevat kokonaiskustannukset kiertotapojen ylläpitämiseksi.

Java 8 ja vanhemmat
Korkea riski ja korkeat kustannukset. Kirjastojen ja lisäosien vaihdot, tiukemmat salaus-/TLS-käytännöt ja peruskuvan muutokset. Jotkin toimittajat tekevät edelleen backport-korjauksia, mutta ekosysteemin vauhti on muualla.
Miksi sillä on merkitystä: osaajien ja kumppaneiden välinen kitka kasvaa, tarkastukset vaikeutuvat ja päivitysten laajuus kasvaa sitä suuremmaksi, mitä kauemmin odotat.

Mitä johtajien tulisi odottaa tulosten parantamiselta

  1. Pienempi riski: parempi tietoturvatilanne, vähemmän hätäkorjauksia.
  2. Nopeampi toimitus: vähemmän yllätyksiä työkaluketjussa, sujuvammat SDK:t.
  3. Vahvempi palkkaustarina: moderni Java houkuttelee vahvempia ehdokkaita.
  4. Ennakoitavissa olevat menot: neljännesvuosittainen hygienia voittaa viime hetken pelastustoimet.

Voiko Java-versiomme käyttää nykyaikaisia tekoälypalveluja?

Kun tiimit sanovat, että "emme voi liittää tekoälyä", kyse on usein JVM:n ja SDK:n yhteensopimattomuudesta (ja joskus TLS/HTTP2/gRPC-kitkailusta), ei tuotteen rajoituksesta. Tässä on käytännönläheinen, versiokohtainen näkemys OpenAI/Azure OpenAI:sta, AWS Bedrockista/SageMakerista ja Google Vertex AI:sta.

Mitä tärkeimmät Java SDK:t odottavat (yhdellä silmäyksellä)?

  1. Azure OpenAI (Java) - com.azure:azure-ai-openai listaa edellytyksenä JDK 8+. Microsoft Learn
  2. OpenAI:n virallinen Java SDK - kanoninen openai-java-kirjasto on OpenAI:n ylläpitämä nykyinen asiakasohjelma (toimii nykyaikaisilla LTS-versioilla; repo on totuuden lähde). GitHub
  3. AWS SDK for Java v2 (käytetään Bedrockissa ja SageMakerissa) - vaatii Java 8+; v1 on ylläpito/EoS 31.12.2025 mennessä. Suositaan v2:sta uusiin töihin. AWS-asiakirjat+2GitHub+2
  4. Google Cloud / Vertex AI (Java) - Googlen asiakaskirjastot tukevat nykyisiä LTS-linjoja; Vertex AI:n Java-asiakasohjelma dokumentoi Java 8+ -tuen, ja Googlen sivulla suositellaan uusimman GA LTS:n (Java 25) käyttöä uuteen kehitykseen. GitHub+1

Lopputulos: useimmat tekoälyn Java SDK:t toimivat Java 8+:lla, mutta tietoturva/HTTP2/gRPC-ongelmat ovat vähäisempiä ja näytteet/työkalut ovat parempia Java 17/21/25:llä , jota kehykset odottavat yhä useammin joka tapauksessa. 

Mitä tämä tarkoittaa ajoaikasi kannalta

Java 25 (LTS) - Vihreä.
Paras oletusarvo uusille tekoälyominaisuuksille. Puhtain polku nykyaikaisille TLS:lle, HTTP/2:lle, gRPC:lle ja konttikuville; SDK:t ja esimerkit lähestyvät ensin tätä. 

Java 21 (LTS) - Vihreä.
Täysin yhteensopiva kaikkien tärkeimpien tekoälyn SDK:iden kanssa. Kehykset, APM-agentit ja build-liitännäiset tukevat aktiivisesti 21:ää; hyödyt virtuaalisista säikeistä, jos ne ovat hyödyllisiä chat/streaming-taustapalveluissa. 

Java 17 (LTS) - Vihreä → keltainen ajan myötä.
SDK:t toimivat, mutta useammat kirjastot ja näytteet edellyttävät 21/25. Myös suositut palvelinkehykset, jotka isännöivät tekoälyn yhdyskäytäviä (Spring Boot 3.x jne.), vaativat jo Java 17+ - olet siis kunnossa tänään, mutta kiitotie lyhenee nopeammin. 

Java 11 (LTS) - Amber.
Tekoälyn SDK:t on edelleen mahdollista integroida, mutta kitka kasvaa: uudemmat lisäosat, kontit ja tietoturva-asetukset edellyttävät 17+. Odota enemmän pinningiä/backportsia ja vähemmän apua nykyisistä esimerkeistä. Pidä 17/21:ää ponnahduslautana. 

Java 8 ja vanhemmat - Red.
Vaikka useat SDK:t teknisesti tukevat 8:aa, maksat toiminnallisen veron: vanhemmat TLS-salakirjoitukset, rajoitettu HTTP/2/gRPC, vaikeammat konttien peruslinjat ja myyjien huomion väheneminen. Googlen ohjeiden mukaan kannattaa suosia viimeisintä LTS:ää; AWS v1 (jota käytetään usein JDK 8:ssa) päättyy 2025-12-31. Jos käytät 8:aa, varaa ensin alustan siirto (17/21/25:een), ennen kuin lisäät tekoälyä mittakaavassa. Google Cloud Documentation+1

Nopea "tekoälyvalmiuden" tarkistuslista Java-palveluille

  1. Suoritusaika: LTS (21/25); vähintään 17, jotta pysytään linjassa nykyaikaisten kehysten ja esimerkkien kanssa. 
  2. HTTP/Streaming: Tarkista SSE/WebSocket/gRPC-reitit päästä päähän (kuormantasaajat, sisäänmeno, välityspalvelimet).
  3. Turvallisuus: Nykyiset CA-niput kuvissa.
  4. SDK:t: Nykyiset Azure OpenAI- ja OpenAI-asiakkaat; Vertex AIlibraryGoogle Cloudista. GitHub+3GitHub+3Microsoft Learn+3Microsoft Learn+3
  5. Tarkkailtavuus: Token/kustannus/viive-mittarit ja katkaisijat; uusintayritykset ja backoff palveluntarjoajan kuristusta varten.
  6. Suojakaiteet: (älä kutsu palveluntarjoajia suoraan selaimista).

Johtajan nyrkkisääntö

Jos käytät Java 21/25:tä, olet vihreä nykyaikaiselle tekoälylle (OpenAI/Azure, Bedrock/SageMaker, Vertex). Jos käytät Java 11:tä, voit edetä varovasti, mutta voit odottaa kasvavaa kitkaa. Jos käytät Java 8:aa tai vanhempaa Java-versiota, päivitä se ensin - korjauskustannukset ovat suuremmat kuin rauhallinen siirtyminen nykyiseen LTS-versioon. 

Usein kysytyt kysymykset päättäjille

Voimmeko ohittaa versiot
Usein kyllä, jos kehyksesi ja SDK:si tukevat kohde-JVM:ää. Pyydä lyhyt yhteensopivuustarkastus ja pilotti.

Tarvitaanko virtuaalisia säikeitä
Ei aina. Ne auttavat I-O-raskaita palveluita, jotka kamppailevat säierajoitusten kanssa. Pyydä tiimiäsi mittaamaan ennen ja jälkeen.

Miten vältämme käyttökatkokset
Vaiheista julkaisu, seuraa palvelun kuntoa tarkasti ja käytä tietoturvallista siirtymäsuunnitelmaa, jonka avulla vanha ja uusi koodi toimivat yhdessä.

Mitä tehdä seuraavaksi

Pyydä yhden sivun mittaista luetteloa, josta käyvät ilmi Java-versio, tärkeimmät kehykset, valmistajan tukipäivät ja tunnetut estot. Hyväksy lyhyt hiekkalaatikkoharjoitus ja aikatauluta sitten vaiheittainen käyttöönotto. Pidä tapa neljännesvuosittaisena, jotta päivityksistä ei koskaan tule kriisiä.

Puhu meille

Suunnittelemme ja toteutamme Java-päivitykset rauhallisin, mitattavin askelin. Jos haluat toisen silmäparin tai tiimin toteuttamaan suunnitelman, ota yhteyttä.

Tiimin laajentaminen

Sopii parhaiten, jos tarvitset kehittäjiä, jotka keskittyvät 100-prosenttisesti tehtäviinsä ja kaipaat kehityksen lisäresursseja pidemmäksi aikaa (6+ kuukautta).

Lue lisää

Ohjelmistoprojektit

Sinulla on liikeidea, jonka avulla voit menestyä, mutta tarvitset asiantuntevia ohjelmistosuunnittelijoita rakentamaan sopivan ratkaisun.

Lue lisää

Ohjelmistokehityspalvelut

Tutustu kirjoittajiin

Paavo Pauklin
Johtokunnan jäsen
+372 6 555 022
Joseph Carson
Eettinen hakkeri, kyberturvallisuusneuvoja
+372 6 555 022

Ilmoittaudu 30 minuutin ilmaiseen konsultaatioon

Hanki ilmainen konsultaatio