Java JDK

Julkaistu

Java-ohjelmointiin kotikoneella tarvitaan Java-kääntäjä ja -tulkki (java- ja javac-ohjelmat). Nämä kuuluvat ilmaiseen ohjelmistoon, joka tunnetaan nimellä Java Development Kit (JDK). JDK on asennettu valmiiksi sekä mikroluokkien koneille että luonnontieteiden tiedekunnan yliopiston Shell-palvelimelle.

Vaikka kotikoneellasi 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 Oraclen Javaa, jotka nämä ohjeet käsittelevät. Macista ja Javasta on kerrottu lisää Oraclen sivuilla. Huomaa kuitenkin, että Oraclen Mac-sivujen asennuslinkit johtavat JRE:n asennukseen.

Onko JDK jo koneellani?

Voit tarkistaa onko koneellasi jo JDK antamalla komentoikkunassa komenton javac -help. JDK on asennettu, jos ikkunaan tulostuu lyhyt käyttöohje, joka on Windows 7 -käyttöjärjestelmässä tämän tapainen:

Java-kääntäjän ohjetuloste

Onko JDK riittävän uusi?

Kurssilla käytetään Javaa, jonka versio on vähintään 1.8.0. Voit tarkistaa Java-versiosi komennolla java -version. Vanhassa Windows-koneessa komento tulostaa esimerkiksi seuraavaa:

Java-tulkin versio

Komennon jälkeinen rivi kertoo version (edellä ”1.6.0_27”). Mikäli koneellasi on kovin vanha Java, kuten tässä tapauksessa, täytyy koneelle asentaa uudempi versio jo tietoturvasyistä.

Jos kaikki teksti ei mahtunut Windowsin komentoikkunaan ja versiotieto katosi samalla, niin kannattaa kasvattaa komentoikkunan pituutta.

Onko Java tietoturvariski?

Kyllä. Javasta on löydetty hyökkäyksen mahdollistavia virheitä. Javaa voi kuitenkin käyttää huoletta kurssin ohjelmointitehtäviin, koska suurimmat ongelmat liittyivät Javan verkkoselaimeen asentamaan lisäosaan, jonka toiminnan uudemmat selaimet estävät, jos Javan versio on liian vanha. Javan lisäosa ei toimi uusissa Chrome-selaimissa ollenkaan.

Tietoturvasi voi vaarantua vain, jos selaat epämääräisiä verkkosivuja vanhemmalla selaimella, jossa on Javan lisäosa. Yleisimmissä selaimissa Java-lisäosan voi poistaa käytöstä melko pienellä vaivalla.

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 uusimman JDK:n lataussivulle (versio 10.0.2) ja valitse listasta koneelle ja käyttöjärjestelmälle sopiva JDK. Java 9 tai 10 ei ole saatavilla 32-bittisille koneille, joille on asennettava Java 8 JDK.

JDK:n asennusohjeet Windowsiin samoin kuin ohjeet muihin järjestelmiin ovat valitettavasti saatavilla vain englanniksi. Asennus onnistuu kuitenkin, 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. JDK ja JRE on helppo sekoittaa keskenään. Windows kertoo hukassa olevasta kääntäjästä näin:

Java-kääntäjä hukassa

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, joka pitää päivittää Windows-järjestelmissä. Tämän muuttujan tulisi päivittyä automaattisesti Mac-järjestelmään ja paketinhallinnalla Linux-järjestelmään Javaa asennettaessa.

Komentoikkunassa käyttöjärjestelmän toiminnot (esimerkiksi Windowsissa dir-komento) 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.

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.

Polkuohjeiden tiivistelmä suomeksi Windows 7 -käyttöjärjestelmälle

Käynnistä aluksi ylläpitäjänä (admin) ohjauspaneeli valitsemalla Start | Control Panel (suomeksi:Aloita | Ohjauspaneeli). Windows 8:ssa ja 10:ssä ohjauspaneelin on helpointa käynnistää hakutoiminnon avulla. Valitse sitten System and Security | System | Advanced system settings (suomeksi: Järjestelmä ja Suojaus | Järjestelmä | Järjestelmän lisäasetukset):

Advanced-välilehti

ja klikkaa Environment Variables (Ympäristömuuttujat) -nappia. Tällöin avautuu uusi ikkuna:

Environment Variables -dialogi

jonka System-listasta pitää etsiä ja valita Path-tekstillä alkava rivi. Kun oikea rivi on valittu, pitää klikata Edit-nappia, joka avaa näytölle vielä yhden ikkunan:

Edit System Variable -ikkuna

Tässä ikkunassa on mentävä Variable value -tekstikentän loppuun, jonne lisätään ensin puolipiste ja sitten hakemisto, jossa javac-ohjelma on.

Uudemmissa Windowseissa polun muodostavien hakemistojen hallinta on helpompaa, koska Edit-nappi avaa taulukon, jossa polun muodostavat hakemistot ovat alekkain. Windows 8 ja 10 -järjestelmissä taulukon loppuun lisätään uusi rivi, jolle lisätään javac:n hakemisto.

Java-ohjelmat löytyvät yleensä hakemistosta C:\Program Files\Java, jossa voi olla muutaman tai jopa useamman Java-asennuksen alihakemistot:

JDK-hakemistot

Alihakemistoista pitää valita jdk-alkuinen hakemisto, jonka nimessä on sama versionumero on kuin asentamasi Javassa. (Yleensä viimeisen asennuksen versionumero on suurin.) Edellä valittaisiin jdk1.6.0_27. Kun oikea alihakemisto on tunnistettu, haetaan vielä bin-alihakemisto:

bin-alihakemisto

ja tarkistetaan, että siellä on javac.exe-tiedosto.

Java-kääntäjän hakemisto olisi siis tässä esimerkissä C:\Program Files\Java\jdk1.6.0_27\bin.

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. Kirjoitusvirheet on helpointa välttää oikein kopioimalla ja liimaamalla hakemiston nimi.

Uusi polun arvo hyväksytään klikkaamalla kussakin ikkunassa OK-nappia.

Lopuksi pitää muistaa avata uusi komentoikkuna, koska ympäristömuuttujien muutokset eivät päivity avoimiin komentoikkunoihin.

Java-tulkki (java) ei suorita ohjelmaa?

Joskun JDK:n asennuksen käy joskus siten, että asennuksen jälkeen java-ohjelma käynnistyy, mutta ei osaa suorittaa ohjelmaa. Tällöin näytölle tulostuu esimerkiksi HelloWorld-ohjelmaa suoritettaessa ilmoitus Error: Could not find or load main class HelloWorld. Huomaa, että Java-tulkki tulostaa tämä ilmoituksen tai Exception in thread ”main” java.lang.NoClassDefFoundError: myös, mikäli kirjoitat suorituskomennon väärin.

Jos olet aivan varma, että olet käskyttänyt java-ohjelmaa oikein, niin syypää on luultavasti CLASSPATH-ympäristömuuttuja. CLASSPATH-muuttuja määrittelee hakemistot, joista Java-tulkki hakee tavukoodia eli käännettyä lähdekoodia. Jos hakemistoista puuttuu työhakemisto eli hakemisto, jossa ajokomento annetaan, tulkki ei löydä ajettavaa ohjelmaa.

Windowsin CLASSPATH-muuttuja voidaan päivittää Windows 7 -käyttöjärjestelmässä samalla tavoin kuin PATH-muuttuja. Kun löydät CLASSPATH-alkuisen rivin ja painat Edit-nappia, niin lisää Variable value -tekstikentän alkuun työhakemistoa symboloiva piste ja erota se puolipisteellä seuraavasta hakemistosta, jos sellainen on:

CLASSPATH-ympäristömuuttuja

Klikkaa lopuksi kussakin ikkunassa OK-nappia ja avaa uusi komentoikkuna, koska ympäristömuuttujien muutokset eivät päivity avoimiin komentoikkunoihin.

CLASSPATH-ympäristömuuttujan voi myös poistaa sen muokkaamisen sijasta, koska suositeltavampi tapa polkujen määrittelyyn on java-ohjelman classpath-parametri, josta on kerrottu tarkemmin luentorungossa. Ennen poistamista on kuitenkin oltava täysin varma, että mikään ohjelma ei tarvitse tätä ympäristömuuttujaa; CLASSPATH-muuttuja luodaan useimmiten jonkin Javaa käyttävän ohjelman asennuksen yhteydessä.

JDK:n käyttöohjeet

Oraclen Java-sivuilta löytyy sekä työkalujen käyttöohjeita että itse Java-kielen API-dokumentaatio.

Lyhyet tulkin ja kääntäjän käyttöohjeet saa tulostumaan näytölle antamalla komentona pelkän ohjelman nimen (javac tai java).