Java-ohjelmointiin tarvitaan Java-kääntäjä ja -tulkki (java- ja javac-ohjelmat). Nämä kuuluvat ohjelmistoon, joka tunnetaan nimellä Java Development Kit (JDK).
Vaikka omalla koneellasi on todennäköisesti valmiina Java Runtime Environment (JRE), joudut asentamaan myös JDK:n, koska JRE:stä puuttuu Java-kääntäjä.
Alla annetut asennusohjeet on pyritty kirjoittamaan mahdollisimman pitkälti käyttöjärjestelmästä riippumattomiksi, vaikka esimerkkinä käytetään Windows-järjestelmää. Applen oma versio Javasta on asennettu valmiiksi Mac OS X käyttöjärjestelmän versioon 10.6 saakka. Uudempiin OS X -versioihin Java on asennettava itse.
Asennettavaksi suositellaan uusinta vakaata Javan versiota. Nämä ohjeet käsittelevät Java-tuotemerkin omistajan (Oracle) Java-toteutusta. Oracle muutti hiljan käyttöehtojaan, mutta onneksi Oraclen JDK:n käyttö yksityisesti omalla koneella on edelleen ilmaista. Yliopiston koneille on asennettu täysin ilmainen OpenJDK, joka toimii samoin kuin Oraclen versio.
Kurssilla käytetään JDK:ta, jonka versio on vähintään 1.8 eli kahdeksan.
Onko JDK jo koneellani?
Voit tarkistaa onko koneellasi JDK antamalla komentoikkunassa komennon javac -version. JDK on asennettu, jos ikkunaan tulostuu versiorivi, joka on Windows-käyttöjärjestelmässä tämän tapainen:
Tulosteesta nähdään koneella olevan JDK:n versio 13.
Onko Java tietoturvariski?
Javasta on löydetty hyökkäyksen mahdollistavia virheitä. Javaa voi kuitenkin käyttää huoletta kurssin ohjelmointitehtäviin. Tietoturvasi voi vaarantua vain, jos selaat epämääräisiä verkkosivuja vanhemmalla selaimella, jossa on Javan lisäosa. Omalle koneelle kannattaa päivittää säännöllisesti Javan uusin versio, koska uusimmassa versiossa on korjattu aiemmissa versioissa ilmenneitä haavoittavuuksia.
Java JDK:n asennus kotikoneelle
Siirry JDK:n tärkeimpien versioiden pääsivulle ja klikkaa uusimman version linkkiä (tällä hetkellä 15.0.1) ja valitse avautuvalta lataussivulta koneesi käyttöjärjestelmälle tehty JDK. Windows-käyttäjät saavat JDK:n koneelleen helpoiten asennusohjelmalla (exe-pääteinen tiedosto). Myös Mac-käyttäjille suositellaan helpointa vaihtoehtoa: valitse levykuva (dmg-päätteinen tiedosto). 32-bittisille koneille ei ole julkaistu JDK:ä sitten Java 8 JDK:n, joka alkaa olla melko vanha.
JDK:n asennusohjeet saa nopeiden luettavaksi klikkaamalla pääsivulla Installation Instructions-linkkiä. JDK:n asennusohjeet Windowsiin samoin kuin ohjeet muihin järjestelmiin ovat valitettavasti saatavilla vain englanniksi. Asennus onnistuu kuitenkin suomenkieliseen järjestelmään, kun huomaa, että kielen muuttuessa useimpien käyttöjärjestelmien valikoiden ja ikkunoiden rakenne pysyy samana.
Java-kääntäjä (javac) ei käynnisty?
Tarkista aluksi, että olet varmasti asentanut JDK:n, koska JDK ja JRE on helppo sekoittaa keskenään.
Windows kertoo hukassa olevasta kääntäjästä näin:
Jos JDK on asennettu ja kääntäjä ei löydy, niin syy on todennäköisesti Path-ympäristömuuttujassa eli niin sanotussa polussa. Komentoikkunassa käyttöjärjestelmän toiminnot ovat saatavilla ilman lisätoimia, mutta kaikki muut ohjelmat suoritetaan ilman tarkempaa hakemiston määrittelyä vain, mikäli ohjelmatiedoston sisältävä hakemisto on mukana Path-muuttujassa.
Asennetun Java-kääntäjän ja -tulkin sisältävä hakemisto saattaa olla tarpeen lisätä Windows-järjestelmien polkuun käsin. Vaikuttaa siltä, että ainakin Javan uusimman version 15 asennusohjelma osaa päivityksen joissain tilanteissa, vaikka tätä mahdollisuutta ei ole dokumentoitu asennusohjeisiin. Polun tulisi päivittyä automaattisesti Mac-järjestelmään asennettaessa. Polun pitäisi asettua myös, kun Java asennetaan paketinhallinnalla Linux-järjestelmään.
JDK:n Windows-version asennusohjeiden Setting the PATH Environment Variable -luku kertoo kuinka ympäristömuuttujaa tulisi muuttaa ja myös kuinka toimia, jos ympäristömuuttujan arvoa ei halua syystä tai toisesta muuttaa.
Täydentävät ohjeet polun päivittämiseen Windows-käyttöjärjestelmälle
Polkuun lisättävän hakemiston nimen päättely JDK:n asennusohjeita käyttäen vaatii pientä pohdintaa ja kirjoittaessa tulee myös helposti virheitä. Siksi saattaa olla helpointa kopioida hakemiston nimi resurssienhallinnasta. Navigoi resurssienhallinnassa ensin Java-ohjelmien asennushakemistoon, joka on yleensä C:\Program Files\Java. Tässä hakemistossa voi olla useamman JDK-asennuksen alihakemistot:
Alihakemistoista pitää valita jdk-alkuinen hakemisto, jonka nimessä on sama versionumero on kuin asentamassasi JDK:ssä. Yleensä viimeisen asennuksen versionumero on suurin. Yllä valittaisiin jdk-13.0.1. Kun oikea alihakemisto on tunnistettu, voidaan siirtyä tämän hakemiston bin-alihakemistoon, joka sisältää kääntäjän ja tulkin. Kopioitavan hakemisto nimi olisi siis tässä esimerkissä C:\Program Files\Java\jdk-13.0.1\bin. Nimen pääsee kopiomaan esimerkiksi klikkamalla hakemistonkentän ”tyhjää” osaa.
Polun päivittäminen tehdään Control panel -ohjelman (ohjauspaneeli) avulla. Päivittämiseen tarvitaan ylläpitäjän oikeudet. Uusimmissa Windowseissa ohjauspaneeli on helpointa löytää hakutoiminnon avulla.
Valitse ohjauspaneelissa System and Security | System | Advanced system settings (Järjestelmä ja suojaus | Järjestelmä | Järjestelmän lisäasetukset) ja klikkaa Environment Variables (Ympäristömuuttujat) -nappia:
Valitse avautuvan ikkunan System variables -listasta Path-tekstillä alkava rivi ja klikkaa Edit-nappia, joka avaa näytölle polun hakemistot sisältävän taulukon. Lisää taulukon loppuun uusi rivi New-napilla ja liitä riville kopioimasi hakemiston nimi.
Hakemiston lisäyksen yhteydessä polusta on syytä poistaa siihen mahdollisesti aiemmin lisätyt Java-hakemistot, jotta käyttöjärjestelmä löytää nimenomaan kaikkein uusimman Javan. Ole varovainen, kun muokkaat polkua, koska polun alussa olevat hakemistot ovat tärkeitä käyttöjärjestelmälle.
Muista tallentaa muutokset OK-nappeja klikkaamalla.
Lopuksi pitää avata uusi komentoikkuna, koska ympäristömuuttujien muutokset eivät päivity avoimiin komentoikkunoihin.
Java-tulkki (java) ei suorita ohjelmaa?
Tarkista aivan aluksi, että olet kutsunut tulkkia oikein. On helppo erehtyä antamaan tulkille tavukoodin sisältävän tiedoston nimi, koska kääntäjälle annetaan lähdekooditiedoston nimi. Esimerkiksi komento java HelloWorld.class tuottaa virheilmoituksen, josta ei käy selvästi ilmi, että komennon tulisi olla java HelloWorld.
Polussa on todennäköisesti JRE-hakemisto, jossa on asentamaasi JDK:n Java-tulkkia vanhempi Java-tulkki, jos saat virheilmoituksen java.lang.UnsupportedClassVersionError: Unsupported major.minor version. Voit tarkistaa tilanteen komennoilla java -version ja javac -version. Tulkin versionumero on kääntäjän versionumeroa pienempi, kun komentoikkuna löytää JRE:ssä olevan vanhan tulkin ennen JDK:n tulkkia.
Eri versioista johtuvan suoritusongelman voi korjata siirtämällä JDK:n hakemiston polussa ennen JRE:n hakemistoa. Huomaa, että jotkut ohjelmat, kuten SPSS, sisältävät JRE:n. SPSS:n pitäisi toimia, vaikka JDK-hakemisto on polussa ennen SPSS:n omassa asennushakemistossa olevan JRE:n hakemistoa, koska uudempi tulkki osaa suorittaa vanhemmalla kääntäjällä tuotetun tavukoodin. Tulkkia uudemmalla kääntäjällä tehtyä tavukoodia ei voi suorittaa, koska tavukoodissa voi olla sellaisia kielen piirteitä, joita vanhempi tulkki ei ymmärrä. Java noudattaa ohjelmistotuotannossa yleistä periaatetta, jossa ohjelmiston vanha versio on yhteensopiva uuden version kanssa, mutta ei päinvastoin.