Päivitetty viimeksi: kesäkuu 2026
Java-päivitykset tuntuvat harvoin kiireellisiltä, kunnes kumppanin SDK, tietoturvapäivitys, framework-muutos tai pilvi-integraatio tekee päivityksestä väistämättömän.
Monille yrityksille kysymys ei ole: ”Pitäisikö meidän päivittää Java?” Parempi kysymys kuuluu: miten etenemme ilman, että rutiininomaisesta alustan päivityksestä tulee riskialtis pelastusprojekti?
Tämä opas tarjoaa johtajille ja teknisille päätöksentekijöille käytännönläheisen katsauksen Java-alustan nykytilanteeseen, turvallisiin versioihin sekä siihen, miten suunnitella päivitys, joka tukee tulevaa kehitystä, tekoälyn käyttöönottoa, pilvipalveluita ja pitkän aikavälin ylläpidettävyyttä.
Tämä artikkeli on nyt päivitetty vastaamaan Java-tilannetta kesäkuussa 2026, mukaan lukien Java 25 LTS, Java 26 ei-LTS-julkaisuna, Spring Boot 4:n vaatimukset, AWS SDK for Java v1 -version tuen päättyminen sekä nykyiset AI-SDK-suositukset.
Java noudattaa nykyään ennustettavaa kuuden kuukauden julkaisuväliä. Osa julkaisuista on lyhytaikaisia. Toiset ovat puolestaan pitkäaikaisen tuen versioita, joita kutsutaan yleensä LTS-versioiksi.
Yritysympäristöissä standardointi kohdistuu yleensä LTS-versioihin, koska ekosysteemi on niissä ennustettavampi: tietoturvapäivitykset, pilvi-SDK:t, frameworkit, build-työkalut, sovelluspalvelimet, monitorointityökalut, konttikuvat ja rekrytointi seuraavat LTS-pohjia.
Paikalle jämähtäminen voi vaikuttaa lyhyellä aikavälillä edullisemmalta. Yleensä kustannukset tulevat kuitenkin esiin myöhemmin, kun:
Tavoitteena ei ole juosta jokaisen Java-julkaisun perässä. Sen sijaan tavoitteena on rakentaa rauhallinen päivityskäytäntö, jotta Java ei koskaan muodostu esteeksi roadmapin toteutumiselle.
Ennen kuin hyväksyt Java-päivityksen, pyydä lyhyt ja käytännöllinen tilannekatsaus. Sen ei tarvitse olla 40-sivuinen raportti. Usein jo yksi sivu riittää.
Käy läpi seuraavia seikkoja:
Jos jokin näistä vastauksista on epäselvä, selvitä asia ennen päivityksen aloittamista. Suurin osa Java-päivityksiin liittyvistä ongelmista johtuu epäselvyyksistä, ei itse Javasta.
Vuonna 2026 useimpien organisaatioiden käytännön tavoitteena on jokin seuraavista:
Älä siirry uuteen Java-versioon vain siksi, että sellainen on olemassa. Siirry siihen, koska se vähentää riskejä, parantaa ylläpidettävyyttä ja varmistaa, että alusta on yhdenmukainen tiimiesi ja yhteistyökumppaneidesi tarvitsemien työkalujen kanssa.
Paras päivityspolku löytyy yleensä lyhyen sandbox-harjoituksen kautta:
Joskus Java-ajoympäristö voidaan päivittää ensin. Joskus taas kehys on päivitettävä ensin. Välillä turvallisin etenemistapa on Java 11 → Java 17 → Java 21/25. Oikea ratkaisu riippuu kyseisestä sovelluksesta, ei yleisestä versiokaaviosta.
Siitä lähtien, kun Java siirtyi kuuden kuukauden julkaisurytmiin, lyhyen aikavälin versiot ovat korvautuneet nopeasti uusilla versioilla. Ne voivat olla hyödyllisiä testaukseen ja varhaiseen käyttöönottoon, mutta ne ovat harvoin sopiva ratkaisu liiketoiminnalle kriittisissä järjestelmissä.
Yritysympäristöissä siirrytään yleensä LTS-versioihin, koska ne tarjoavat pidemmän tukijakson ja paremman yhteensopivuuden ekosysteemin kanssa.
Siksi tässä oppaassa keskitytäänkin Java-versioihin 25, 21, 17, 11 ja 8 tai sitä vanhempiin versioihin.
Java 26 on saatavilla, mutta se ei ole LTS-versio.
Tämä tarkoittaa, että se voi olla hyödyllinen:
Useimpien liiketoiminnalle kriittisten järjestelmien osalta Java 26:ta ei kuitenkaan tulisi käyttää Java 25:n sijaan oletuspäivityskohteena.
Miksi tällä on merkitystä: Java 26 on hyödyllinen valmistautumiseen, mutta ei varsinaisen yrityskäytön kohteena. Jos tavoitteenasi on pitkäaikainen vakaus, Java 25 LTS on parempi oletusvalinta.
Java 25 on tällä hetkellä vahvin LTS-versio uusille palveluille ja suunnitelluille modernisointihankkeille.
Tällä hetkellä se tarjoaa tiimeille pisimmän LTS-tukijakson ja asettaa alustan sinne, mihin ekosysteemi on menossa. Ajan myötä yhä useammat pilvipalvelutyökalut, sovelluskehityspaketit (SDK), frameworkit, valvontatyökalut, esimerkit ja konttikuva-tiedostot optimoidaan Java 25:n ja sitä uudemman version ympärille.
Java 25 on erityisen houkutteleva, kun:
Java 25:tä ei kuitenkaan pidä ottaa käyttöön hätiköidysti. Joissakin sovelluksissa voi olla riippuvuuksia, frameworkkeja, sovelluspalvelimia tai toimittajien tuotteita, jotka eivät ole vielä täysin valmiita. Tällaisissa tapauksissa Java 21 voi olla turvallisempi ensimmäinen askel.
Miksi tällä on merkitystä: Java 25 tarjoaa parhaat pitkän aikavälin näkymät, mutta päivityksen onnistuminen riippuu edelleenkin frameworkkien ja riippuvuuksien valmiudesta.
Java 21 on edelleen erittäin vakaa tuotantoversio.
Monille organisaatioille Java 21 on käytännöllisin lyhyen aikavälin tavoite, koska se on kypsä, laajasti tuettu ja jo hyvin tunnettu nykyaikaisten Java-frameworkien ja työkaluketjujen keskuudessa.
Java 21 toi mukanaan myös virtuaaliset säikeet, jotka voivat auttaa I/O-intensiivisiä palveluita skaalautumaan pienemmällä säikeiden hallinnointikuormituksella. Kaikki sovellukset eivät tarvitse virtuaalisia säikeitä, eikä niiden pitäisi olla ainoa syy päivittää, mutta ne ovat hyödyllisiä monissa API-, integraatio- ja suoratoistotyökuormissa.
Java 21 on hyvä valinta, kun:
Riskit, jos viivytät tässä vaiheessa liian kauan: Java 21 on tällä hetkellä vakaa, mutta sen ei pitäisi estää pitkän aikavälin suunnittelua. Jos valitset nyt Java 21:n, pidä Java 25 mukana suunnitelmissasi.
Java 17 on edelleen laajasti käytössä ja sopii yhä moniin tuotantokäyttöön tarkoitettuihin järjestelmiin. Se on myös monien nykyaikaisten Java-kehysrakenteiden vähimmäisvaatimus.
Mutta vivahteilla on merkitystä: Java 17 on yhä enemmän vähimmäisvaatimus, ei se paras strateginen tavoite.
Spring Boot 3 on jo vienyt Java-ekosysteemin voimakkaasti kohti Java 17:ää. Spring Boot 4 jatkaa tällä tiellä vaatimalla Java 17:ää tai uudempaa versiota. Tämä tarkoittaa, että Java 8:aa tai Java 11:tä käyttävät tiimit eivät voi pitää siirtymistä Spring Boot 4:ään pelkästään framework-päivityksenä. Se edellyttää myöskin Java-ajoympäristön päivittämistä.
Toisaalta Java 17 ei ole enää mikään uutuus. Oracle JDK:ta käyttävien organisaatioiden on kiinnitettävä erityistä huomiota toimittajien tukiaikatauluihin, sillä Oracle Premier Support -tuki Java 17:lle päättyy syyskuussa 2026. Muilla toimittajilla voi olla erilaiset tukimallit, joten on tärkeää tarkistaa juuri käyttämäsi jakelupaketin tukikäytännöt.
Java 17 voi silti olla hyväksyttävä, kun:
Uusien modernisointihankkeiden kohdalla Java 21 tai Java 25 on kuitenkin yleensä parempi valinta.
Miksi tällä on merkitystä: Java 17 ei ole ”huono”, mutta se ei enää ole se versio, johon pitkän aikavälin suunnittelun tulisi päättyä. Käsittele sitä väliaikaisena ratkaisuna, ellei teillä ole selkeää syytä pysyä siinä.
Java 11 on edelleenkin käytössä monissa yrityksissä, mutta se on nykyään vanhentunut lähtökohta aktiiviselle kehitystyölle.
Jotkut toimittajat ja softakirjastot tukevat sitä edelleen. Jotkin pilvipohjaiset SDK:t toimivat myöskin vielä sillä. Mutta nykyaikainen Java-kehitys on edennyt. Frameworkit, laajennukset, testausvälineet, sovelluspalvelimet, oletusarvoiset suojausasetukset, konttien peruskuvat ja esimerkit edellyttävät yhä useammin Java 17:ää tai uudempaa versiota.
Java 11:n käyttäminen tarkoittaa usein:
Java 11 voi edelleen olla hyväksyttävä ratkaisu vakaissa vanhoissa järjestelmissä, joihin tehdään vain vähäisiä muutoksia. Sitä ei kuitenkaan tulisi käyttää perustana uusille tekoäly-, pilvi- tai asiakaspalvelualustoille.
Miksi tällä on merkitystä: Java 11 saattaa vielä toimia, mutta sen ympäristö on siirtymässä eteenpäin. Mitä kauemmin odotat, sitä kalliimmaksi lopullinen päivitys tulee.
Java 8 oli erinomainen versio, ja se on edelleenkin käytössä monissa yritysympäristöissä. Vuonna 2026 Java 8:aa ja sitä vanhempia versioita tulisi kuitenkin pitää suuririskisinä useimmissa aktiivisissa järjestelmissä.
Tämä ero on tärkeä: jotkut toimittajat ja pilvipalvelukirjastot tarjoavat edelleen Java 8:n tukea tietyissä tapauksissa. Se ei kuitenkaan tarkoita, että Java 8 olisi hyvä perusta uusille kehityshankkeille.
Java 8:ssa pysyvät tiimit kohtaavat yleensä seuraavia ongelmia:
Jos Java 8 -järjestelmä on vakaa, erillinen ja muuttuu harvoin, sitä ei välttämättä tarvitse uudistaa kiireellisesti. Jos järjestelmä on kuitenkin liiketoiminnan kannalta kriittinen, asiakaskäytössä, yhteydessä pilvipalveluihin tai sen on tarkoitus tukea tekoälyominaisuuksia, alustan päivitys tulisi suunnitella ennen uutta, laajempaa kehitystyötä.
Miksi tällä on merkitystä: Java 8:aa voidaan edelleen käyttää hallituissa vanhoissa ympäristöissä, mutta sen pohjalta toteutettavat uudet strategiset hankkeet aiheuttavat vältettävissä olevia riskejä.
Hyvän Java-päivityksen ei pitäisi tuntua sankarillisesti tekniseltä pelastusoperaatiolta. Sen pitäisi tuntua pikemminkin hallitulta alustan kunnossapidolta.
Odotetut tulokset ovat:
Kun tiimit sanovat, että ”emme voi integroida tekoälyä”, ongelma ei useinkaan ole tekoälyn toimittajassa. Syynä on yleensä ympäröivä alusta: Java-versio, kehysversio, SDK-tuki, TLS, HTTP/2, gRPC, suoratoisto, havainnoitavuus, verkon hallinta ja käyttöönottoarkkitehtuuri.
Tärkeänä erona on:
”SDK toimii teknisesti” ei tarkoita samaa kuin ”alusta on valmis tuotantokäyttöön tarkoitettuun tekoälyyn”.
Monet tekoäly-SDK:t tukevat edelleen vanhempia Java-versioita. Tuotantokäytössä olevat tekoälytyökuormat vaativat kuitenkin usein muutakin kuin toimivan asiakasohjelmistokirjaston. Niissä tarvitaan luotettavaa suoratoistoa, turvallista todennusta, nykyaikaisia HTTP-asiakasohjelmia, toimivaa aikakatkaisujen käsittelyä, uudelleenkokeiluja, käyttörajoituksia, kustannusseurantaa, lokitietojen keruuta ja valvontaa.
Virallinen OpenAI Java SDK on luotettavin tietolähde OpenAI-sovellusliittymien kehittämiseen Java-ympäristössä. Uusia OpenAI-integraatioita kehittävien tiimien tulisi tarkistaa tiedot suoraan tästä lähteestä, sillä tekoälyrajapinnat ja sovelluskehityspaketit muuttuvat nopeasti.
Azure OpenAI:lla on ollut oma Java-asiakaskirjastonsa, mutta Microsoftin Azure SDK -arkistossa ilmoitetaan nyt, että nykyinen Azure OpenAI Java -client ei enää päivity tässä muodossa. Uusimpien OpenAI-ominaisuuksien osalta Microsoft ohjaa kehittäjiä käyttämään virallista OpenAI Java -kirjastoa ja tarjoaa tarvittaessa Azure-kohtaisia siirtymisohjeita.
Tämä ei tarkoita, että jokainen olemassa oleva Azure OpenAI Java -integraatio olisi kirjoitettava välittömästi uusiksi. Se tarkoittaa kuitenkin, että tiimien tulisi tarkistaa valitsemansa asiakasohjelma ennen uusien, pitkäaikaisten tekoälytoimintojen kehittämistä.
AWS:n tekoälypalveluiden osalta tiimien tulisi käyttää ensisijaisesti AWS SDK for Java v2:ta uusissa projekteissaan.
AWS SDK for Java v1:n tuki päättyi 31. joulukuuta 2025. Tämä muuttaa painotuksen muotoilusta “suunnittele ennen kuin se päättyy” kohti ajatusta “käsittele migraatio aktiivisena teknisenä velkana”.
SDK v1:tä käyttävät nykyiset sovellukset saattavat edelleen toimia, mutta niitä ei tulisi käyttää uusien strategisten kehityshankkeiden perustana.
Google Cloudin Java-kirjastot on testattu useilla Java-versioilla, kuten Java 8, 11, 17, 21 ja 25. Myös Google suosittelee Java 25:tä parhaaksi vaihtoehdoksi uusille kehityshankkeille.
Tämä on hyödyllinen vivahde. Vanhempia Java-versioita saatetaan edelleen tukea, mutta uusissa kehityshankkeissa ei pitäisi automaattisesti valita vanhinta tuettua ajoympäristöä. Tuki ei ole sama asia kuin strateginen yhteensopivuus.
Parhaiten sopiva kohde uusille AI-pohjaisille palveluille ja alustojen modernisointiin. Se tarjoaa vahvimman nykyisen LTS-aikajänteen ja on hyvin linjassa sen kanssa, mihin pilvikirjastot ja esimerkkiratkaisut ovat siirtymässä.
Edelleenkin erittäin vankka lähtökohta. Monille tiimeille Java 21 on paras käytännön ratkaisu ennen Java 25:tä, etenkin kun päivitetään Java 8:sta tai 11:stä.
Java 17 pystyy edelleen tukemaan nykyaikaista tekoälytyötä, etenkin jos kehysrakenteet sitä edellyttävät. Sitä tulisi kuitenkin pitää väliaikaisena tai vähimmäisvaatimuksena, ei ensisijaisena pitkän aikavälin tavoitteena.
Tekoälyn integrointi voi edelleen olla mahdollista, mutta frameworkkien, esimerkkien, laajennusten, konttien ja tietoturva-asetusten suhteen on odotettavissa yhä enemmän ongelmia. Java 11:n käyttöönottoon tulisi yleensä liittää alustan päivityssuunnitelma ennen tekoälyn laajamittaista käyttöönottoa.
Jotkin SDK:t ja kirjastot saattavat edelleen tukea Java 8:aa, mutta sen suorituskyky on heikko. Jos aiot tehdä vakavaa tekoälytyötä, päivitä alusta ensin.
Ennen kuin aloitat tuotantokäyttöön tarkoitettujen tekoälyominaisuuksien rakentamisen Java-sovellukseen, tarkista seuraavat seikat:
Java-päivitykset tapahtuvat harvoin erillisinä. Java-ajoympäristö on nimittäin vain yksi osa alustaa.
Realistisessa päivityssuunnitelmassa tulisi tarkistaa seuraavat seikat:
Spring Boot on hyvä esimerkki siitä, miksi tällä on merkitystä. Spring Boot 4 vaatii Java 17:n tai uudemman ja tukee Java-versioita aina Java 26:een asti. Tämä tekee Java 17:sta vähimmäisvaatimuksen, mutta ei välttämättä sitä kaikista parasta tavoitetta. Jos tiimi tekee jo merkittävää modernisointityötä, kannattaa arvioida, onko Java 21 vai Java 25 parempi lopullinen kohde.
Huonoin tapa on päivittää Java, framework, riippuvuudet, kontit ja käyttöönottoprosessit kerralla ilman välivaiheita. On parempi selvittää, mikä taso aiheuttaa todellisen pullonkaulan, ja edetä hallitusti vaihe vaiheelta.
Turvallisimmat Java-päivitykset ovat tylsiä.
Aloita pilottivaiheella. Valitse yksi palvelu, joka on edustava mutta ei kuitenkaan liiketoiminnan kannalta kriittisin. Päivitä se yhdessä toimipisteessä. Suorita testit. Luo kontti. Ota käyttöön testausympäristössä. Mittaa käynnistysaikaa, muistin käyttöä, viivettä, virheitä, lokitietoja ja integrointikäyttäytymistä.
Päätä sitten käyttöönottotapa:
Vältä ”big bang” -päivityksiä, ellei järjestelmä ole pieni ja perusteellisesti testattu.
Kun kyseessä ovat tietokantamuutokset, suunnittele asia huolellisesti. Vanha ja uusi koodi saattavat joutua toimimaan rinnakkain jonkin aikaa. Tällaisissa tilanteissa palauttaminen ei aina ole yhtä yksinkertaista kuin vanhan sovelluksen uudelleenasentaminen. Joskus turvallisempi vaihtoehto on jatkaa kehitystä korjauspäivityksen avulla.
Hyvä päivityssuunnitelma määrittää:
Usein kyllä. Yleensä Java-versiota ei tarvitse päivittää yksi kerrallaan.
Versioiden ohittaminen on kuitenkin turvallista vain, jos frameworkisi, SDK:t, build-työkalusi ja käyttöönottoprosessisi tukevat kyseistä versiota. Pyydä lyhyttä yhteensopivuustarkistusta ennen muutoksen vahvistamista.
Uusien palveluiden osalta yleensä kyllä.
Olemassa olevien järjestelmien osalta se riippuu frameworkkien ja riippuvuuksien valmiudesta. Java 25 on paras pitkän aikavälin LTS-tavoite, mutta Java 21 voi olla turvallisempi ensimmäinen askel monimutkaisille järjestelmille, jotka siirtyvät Java 8:sta tai 11:stä.
Yleensä se ei ole tuotantostandardi.
Java 26 on hyödyllinen testaukseen ja valmistautumiseen, mutta se ei ole LTS-julkaisu. Useimmille yritysjärjestelmille Java 25 on parempi pitkän aikavälin kohde.
Java 17 voi olla edelleenkin turvallinen ja kelvollinen vaihtoehto, etenkin järjestelmissä, joissa on jo käytössä nykyaikaisia frameworkkeja. Sitä ei kuitenkaan tulisi pitää ihanteellisena kohteena uusille alustakehityshankkeille.
Ajattele Java 17:ää nykyaikaisen kehityksen vähimmäisvaatimuksena tai välivaiheena. Pitkän aikavälin suunnittelua varten kannattaa tarkastella Java 21:tä tai Java 25:tä.
Ette välttämättä.
Virtuaaliset säikeet voivat auttaa I/O-intensiivisiä palveluita, etenkin sovellusrajapintoja (API), yhdyskäytäviä, suoratoistopalveluita ja integrointia vaativia työkuormia. Niiden käyttöä tulisi kuitenkin harkita tarkkaan. Älä tee päivitystä pelkästään siksi, että ominaisuus kuulostaa houkuttelevalta. Tee päivitys vain, jos alustan edut ovat riittävän vakuuttavia.
Käytä vaiheittaisia julkaisuja, toimintatarkistuksia, seurantaa sekä käyttöönottosuunnitelmaa, jonka avulla voit tarvittaessa keskeyttää tai peruuttaa käyttöönoton.
Jos muutokset koskevat dataa, suunnittele siirtymä siten, että vanhat ja uudet sovellusversiot voivat toimia turvallisesti siirtymävaiheen aikana.
Ei tarvitse hätääntyä, mutta älä myöskään sivuutta asiaa.
Aloita kartoittamalla tilanne. Selvitä tärkeimmät esteet. Tarkista framework-versiot, toimittajien tuki, SDK:t ja käyttöönoton rajoitukset. Valitse sitten realistinen tavoite: usein ensimmäisenä askeleena Java 17 tai 21, ja pidemmän aikavälin tavoitteena Java 25.
Jos käytät Java 25:tä, käytät tällä hetkellä vahvinta LTS-perusversiota.
Jos käytät Java 21:tä, olet edelleen hyvässä asemassa, mutta sinun kannattaa pitää Java 25 mielessäsi.
Jos käytät Java 17:ää, olet kelvollisella mutta supistuvalla lähtötasolla. Suhtaudu siihen vähimmäisvaatimuksena tai välivaiheena, älä suositeltavana lopputuloksena uusille modernisointihankkeille.
Jos käytät Java 11:tä, varaudu kasvaviin ongelmiin ja aloita siirtymän suunnittelu.
Jos käytät Java 8:aa tai vanhempaa versiota, vältä rakentamasta laajoja uusia tekoäly-, pilvi- tai kumppani-integraatiohankkeita sen varaan. Päivitä alusta ensin.
Pyydä tiimiltäsi yhden sivun pituinen Java-luettelo:
Hyväksykää sitten lyhyt kokeilu. Tavoitteena ei ole päivittää kaikkea heti, vaan pikemminkin korvata oletukset faktoilla.
Kun tie on selvä, ajoita päivitys pieniksi, hallittaviksi vaiheiksi. Tee tästä neljännesvuosittainen rutiini, jotta Java-päivitykset eivät koskaan pääsisi aiheuttamaan kriisiä.
Autamme yrityksiä suunnittelemaan ja toteuttamaan Java-päivitykset rauhallisin, mitattavin vaihein.
Jos haluat, että joku tarkistaa Java-sovelluksesi, tai jos tarvitset kehitystiimin päivittämään järjestelmän, ota yhteyttä.